我在我的应用程序中添加了closeEvent,以防止用户按下alt-f4并关闭应用程序。我现在的问题是当我在开始菜单中手动关闭或重新启动计算机时,没有任何反应。
def closeEvent(self, event):
event.ignore()
我也试过这段代码,但没有进入if TRUE语句。
def keyPressEvent(self, event):
if event.key() == QtCore.Qt.Key_F4 and (event.modifiers() &
QtCore.Qt.AltModifier):
print 'do something'
答案 0 :(得分:0)
你可以使用QApplication.setQuitOnLastWindowClosed吗?
当设置为False
时,这将在顶级窗口关闭时保持应用程序处于活动状态。
答案 1 :(得分:0)
我不确定您是要阻止系统关闭还是允许它关闭,但您应该查看系统关闭时通常调用的QApplication.commitData
,{ {1}}
例如,您可以在commitData中设置一个标志,以帮助区分您应该忽略的正常关闭事件和QSessionManager
函数中系统引起的关闭事件。