为啥 Qt 中的 MainWindow 在启动程序后关闭?

Posted

技术标签:

【中文标题】为啥 Qt 中的 MainWindow 在启动程序后关闭?【英文标题】:Why MainWindow in Qt is closing after start the program?为什么 Qt 中的 MainWindow 在启动程序后关闭? 【发布时间】:2014-11-20 20:19:52 【问题描述】:

我正在使用这个程序在 Windows 上工作并且没问题.. 当我在 linux 上运行它(使用 QT creator,在 windows 上相同)时,窗口会立即显示和隐藏。 程序太大了要全部粘贴,这是我的main.cpp代码

int main(int argc, char *argv[])
    QApplication a(argc, argv);
    MainWindow w;
    w.show(); 
    return a.exec();

应该是什么?

【问题讨论】:

不向我们展示 MainWindow 的代码,很难说... 至少显示 MainWindow 构造函数代码 【参考方案1】:

如果没有退出应用程序的致命异常,则事件循环 (a.exec()) 将由于某些事件服务而退出。因此,可见性不足以得出您的应用退出 Linux 的原因。

【讨论】:

我会查看 Qt Creator 中的应用程序输出控制台并查看日志,那里可能有有价值的提示。另外,我们需要跟踪 MainWindow 的析构函数,为什么要调用它?还有 void MainWindow::closeEvent(QCloseEvent * event),是什么让它过早关闭?

以上是关于为啥 Qt 中的 MainWindow 在启动程序后关闭?的主要内容,如果未能解决你的问题,请参考以下文章

当 MainWindow 从另一个类(不在主函数中)启动时,QT ui 未显示

从 QT 的 MainWindow 中的另一个函数更新标签

Qt 5.3 Webkit QWebView中的Javascript太慢了,在Windows上挂了MainWindow

如何从另一个 Qt Widget 表单类调用 MainWindow 类

将 Worker Thread 信号与 MainWindow 插槽连接时出错(Qt5)

Python3 Qt5 主窗口