我在Mac OS X上使用Qt/c++编写了一个应用程序。当退出应用程序时,我捕获closeevent以显示对话框。
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中图标上右击关闭应用程序时,对话框会出现两次,并且关闭事件被调用两次。
有任何想法为什么会这样?