Qt - 对主要的 QDialog 选择感到困惑
Posted
技术标签:
【中文标题】Qt - 对主要的 QDialog 选择感到困惑【英文标题】:Qt - confused on QDialog choice on main 【发布时间】:2012-07-31 11:38:33 【问题描述】:我有以下 Qt 代码:
int main(int argc, char *argv[])
QApplication app(argc, argv);
ChoosingDialog cdlg;
if(!startWin.exec())
// nothing chosen
return 0;
if(cdlg.firstWindowSelected)
CFirstWindow win;
win.show();
return app.exec();
else
CSecondWindow win;
win.show();
return app.exec();
这似乎可行,但它在某些 asm 行中的“事件调度程序清理”上给了我一个错误。我尝试了一下,发现问题与 app.exec() 调用有关。
更新: 如果我将这些行添加到选择对话框(这是一个由 Qt Creator 自动生成的简单空白类)
void ChoosingDialog ::closeEvent(QCloseEvent *)
exit(1);
我没有收到任何错误
【问题讨论】:
我尝试了您的代码(使用假的 ChooseDialog、CFistWindow 和 CSecondWindow),除了startWin
应该是 cdlg
我没有遇到任何错误。你能提供你的小部件的实现吗?
我没有小部件,我有一个没有任何内容的 QDialog 类(默认由 Qt Creator 生成)和两个 QMainWindows(但如果我不构建它们的对象也会发生错误)跨度>
是的,startWin 应该是 cdlg。代码看起来不错。
@Johnny:你能发布确切的错误吗?
调用exit()
听起来不是一个合适的解决方案。这里正在发生其他事情。我建议追踪错误(尤其是因为它只是一小段代码)而不是编写“解决方法”。
【参考方案1】:
原来我在 QApplication 之前使用了“singleapplication”类。共享内存锁出了点问题。
我一重新启动系统,异常就消失了……bof..你相信魔法吗?
【讨论】:
以上是关于Qt - 对主要的 QDialog 选择感到困惑的主要内容,如果未能解决你的问题,请参考以下文章