python pyqt4 closeEvent阻止Windows重启/关机?

时间:2011-10-22 06:54:30

标签: python pyqt4

我在我的应用程序中添加了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'

2 个答案:

答案 0 :(得分:0)

你可以使用QApplication.setQuitOnLastWindowClosed吗?

当设置为False时,这将在顶级窗口关闭时保持应用程序处于活动状态。

答案 1 :(得分:0)

我不确定您是要阻止系统关闭还是允许它关闭,但您应该查看系统关闭时通常调用的QApplication.commitData,{ {1}}

例如,您可以在commitData中设置一个标志,以帮助区分您应该忽略的正常关闭事件和QSessionManager函数中系统引起的关闭事件。