程序代码:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPushButton *btn = new QPushButton("弹出对话框", this);
connect(btn, &QPushButton::clicked, [=](){
QDialog dlg(this);
dlg.resize(200, 100);
dlg.exec();
});
}
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPushButton *btn = new QPushButton("弹出对话框", this);
connect(btn, &QPushButton::clicked, [=](){
QDialog dlg(this);
dlg.resize(200, 100);
dlg.exec();
});
}
两个问题:
1)上面这个代码dlg是lambda函数的局部变量,传入了this指针加入了对象树,lambda函数退出的时候dlg对象已经被析构,当dlg析构的时候是不是会自动退出对象树?
不然对象树析构的时候会拿dlg这个已经无效的对象来析构,这样应该会出问题吧?
2)是不是以后开发qt,只要终端没报error log,没崩溃,就可以认为没问题啊?