我有一个小问题 - 我有QMainWindow按钮。单击该按钮,我想要打开现有的QMainWindow(详细信息:我想打开一个带有QWT Plot的窗口。我的意思是QWt的刷新项目示例。)
所以我想在按钮上打开现有的Window。到目前为止,我能够打开新的QMainWindow,但是如何从项目更新中看到MainWindow呢?
void MyWindow::on_pushButton_1_clicked ()
{
QMainWindow *mw = new QMainWindow();
mw->show();
}
答案 0 :(得分:1)
使用此代码,您将在离开方法范围后获得泄漏指针。
原因是show()方法没有阻塞。它会将事件发布到事件循环队列中。每当Qt事件循环“获得容量”时,它将以异步方式处理。
您有几种方法可以解决此问题。
1)Qt父/子关系
QMainWindow *mw = new QMainWindow(this);
^^^^
2)让“mw”成为MyWindow的一名成员
m_mw.show();
并在MyWindow构造函数中构造它。
3)使用智能指针
QSharedPointer<QMainWindow> mw = QSharedPointer<QMainWindow>(new QMainWindow());