【问题标题】:Open Existing QMainWindow from QMainWindow从 QMainWindow 打开现有的 QMainWindow
【发布时间】:2014-01-14 19:50:41
【问题描述】:

我有一个小问题 - 我有 QMainWindow 按钮。单击该按钮时,我希望打开一个现有的 QMainWindow(详细信息:我想打开一个带有 QWT Plot 的窗口。我的意思是 QWt 的 refreshtest 项目示例。)

所以我想在按钮上打开现有的窗口。到目前为止,我能够打开新的 QMainWindow,但是我该怎么做才能从项目 refreshtest 中看到 MainWindow?

void  MyWindow::on_pushButton_1_clicked ()
{
  QMainWindow *mw = new QMainWindow();
  mw->show();
}

【问题讨论】:

    标签: qt qtgui qmainwindow qt-signals


    【解决方案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());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      • 2014-04-08
      • 1970-01-01
      • 2019-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多