【发布时间】:2015-07-16 02:47:09
【问题描述】:
我在 OSX 上用 Qt/c++ 编写了一个应用程序。退出应用程序时,我正在捕获关闭事件以显示对话框
void MainUI::closeEvent (QCloseEvent *event)
{
if( DeviceUnplugged == false) {
ExitDialog = new DialogExit;
ExitDialog->exec();
if(ExitDialog->result() == QDialog::Accepted) {
m_device.CloseDevice();
event->accept();
}
else {
event->ignore();
}
}
}
使用红叉关闭或使用菜单“退出”时,对话框正确显示。
但是当我使用右键单击 Dock 中的图标关闭应用程序时,对话框会出现两次,关闭事件被调用两次。
知道为什么吗?
【问题讨论】:
-
什么操作系统?许多 Linux DE 也支持扩展坞。
-
@cmannett85 这是 OSX
-
@Seb 如果取消第一个对话框而不是接受,是否会出现第二个对话框