QT中的Qwidget类的构造及显示区别

zzllvlv 2019-08-29 05:51:18
示例代码:
1、头文件

class MainWindow : public QMainWindow
{
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
};
2、实现文件
代码1

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QLabel label=new QLabel(this);
label.setGeometry(10,10,100,20);
QDateTime *datetime=new QDateTime(QDateTime::currentDateTime());
label.setText(datetime->date().toString());
}
这个是可以正常显示的,在mainwindow中有个label标签显示时间。
但是我将上述实现代码改为:
代码2

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
QLabel label;
label.setParent(this);
label->setGeometry(10,10,100,20);
QDateTime *datetime=new QDateTime(QDateTime::currentDateTime());
label->setText(datetime->date().toString());
}
之后就不能显示label标签,这是为什么?
我在mainwindow的声明中添加一个label成员,对这个成员使用代码2同样可以显示,这又是为什么?
...全文
239 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
eatu 2019-09-01
  • 打赏
  • 举报
回复
第二个例子lable是局部变量,生存期在构造函数内,还没来得及显示,就已经被析构了
ooolinux 2019-08-29
  • 打赏
  • 举报
回复
局部变量/对象,函数结束就析构了。

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧