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
我不太确定你是想阻止系统关机,还是想让它正常关机,但你应该看看 QApplication.commitData
这个东西,它通常在系统关机时被调用,还有 QSessionManager
。
比如,你可以在 commitData 里设置一个标志,这样就能区分正常的关闭事件(你可以忽略)和由于系统关机引起的事件,这个可以在 closeEvent
函数里处理。
0
你能用一下 QApplication.setQuitOnLastWindowClosed 吗?
当这个设置为 False
时,关闭最上面的窗口后,应用程序仍然会继续运行。