为啥 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 5.3 Webkit QWebView中的Javascript太慢了,在Windows上挂了MainWindow
如何从另一个 Qt Widget 表单类调用 MainWindow 类