在Mac上,当您点击小部件的红色“关闭”按钮时,您的QWidget将收到“closeEvent”调用。Qt:致电closeEvent的原因(...)
但是,如果在键盘上单击“cmd-Q”以退出应用程序,则打开的QWidget也会收到“closeEvent”。
在“closeEvent”时间,有没有办法找出它被调用的原因?因为用户关闭了特定窗口,或者因为用户只是试图彻底退出应用程序?
或者换句话说,QCoreApplication/QAppliction对象会有一些线索,有一些标志表明它处于“我即将关闭应用程序”模式,我可以在closeEvent期间检查它吗?
查询发件人无效,因为'closeEvent()'是一个事件,而不是一个槽;因此,'QObject :: sender()'为null,因此调用'QObject :: sender() - > objectName()'会使程序崩溃。 –
我曾经把'closeEvent()'和'showEvent()'作为插入子类的对象......现在我把它们改为'protected:'来代替。 – phyatt