0

我正在学习我在 uni 的 QT 模块的文字处理器教程。

它要求我设置这个属性:

MainWindow::setAttribute(Qt::WA_DeleteOnClose);

当我运行应用程序时出现问题,它会导致错误提示应用程序已意外关闭。

它还要求我进行 actionExit 操作并添加到文件工具栏,但没有显示,我猜这是因为我在 OSx 上编写它并且退出/退出是用 cmd 照顾你的+Q 快捷键。

我想知道是否有人可以为我阐明这个问题,以便我知道以供将来参考。如果需要,我可以发布教程 + 源代码。

谢谢

编辑:来自调试器的回溯(希望这是正确的)

    0   __pthread_kill      0   0x7fff8eaff212  
1   pthread_kill        0   0x7fff86f7eaf4  
2   abort       0   0x7fff86fc2dce  
3   free        0   0x7fff86f96959  
4   MainWindow::~MainWindow mainwindow.cpp  22  0x100002cff 
5   QObject::event      0   0x100e48906 
6   QWidget::event      0   0x1000ecd5e 
7   QMainWindow::event      0   0x10049cadb 
8   QApplicationPrivate::notify_helper      0   0x10009593d 
9   QApplication::notify        0   0x10009bdc4 
10  QCoreApplication::notifyInternal        0   0x100e3417c 
11  QCoreApplicationPrivate::sendPostedEvents       0   0x100e355a0 
12  __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__      0   0x7fff90925101  
13  __CFRunLoopDoSources0       0   0x7fff90924a25  
14  __CFRunLoopRun      0   0x7fff90947dc5  
15  CFRunLoopRunSpecific        0   0x7fff909476b2  
16  RunCurrentEventLoopInMode       0   0x7fff8d0f60a4  
17  ReceiveNextEventCommon      0   0x7fff8d0f5d84  
18  BlockUntilNextEventMatchingListInMode       0   0x7fff8d0f5cd3  
19  _DPSNextEvent       0   0x7fff91a00613  
20  -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]        0   0x7fff919ffed2  
... <More>
4

1 回答 1

1

Is your MainWindow object declared on the stack, by any chance? If so, then DeleteOnClose is not a good idea, simply because deleting an object that is on the stack is an error.

于 2012-11-11T21:15:54.620 回答