Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python pyqt4 closeEvent阻止windows重新启动/关闭?_Python_Pyqt4 - Fatal编程技术网

python pyqt4 closeEvent阻止windows重新启动/关闭?

python pyqt4 closeEvent阻止windows重新启动/关闭?,python,pyqt4,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.modi

我在应用程序中添加了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'
你能利用这个机会吗

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

您可以利用吗


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

我不确定是否要阻止系统关闭,或允许它关闭,但您应该查看QApplication.commitData(通常在系统关闭时调用)和QSessionManager


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

我不确定您是要阻止系统关闭,还是允许系统关闭,但您应该了解QApplication.commitData,它通常在系统关闭时调用,以及QSessionManager


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

@unice您使用的是哪个操作系统?您不能使用按键event、event、,等。关闭事件将在按键事件完成之前发生。但是你真的需要完全阻止用户关闭窗口吗?为什么不显示一个确认对话框呢?这是出于安全考虑。应用程序不应该被关闭,只能由另一台计算机远程控制,这就是为什么我不存在通过强制终止声音远程关闭/重新启动的问题,就像你正在编写病毒或malware@unice您使用的是哪种操作系统?不能使用按键事件、事件、,等。关闭事件将在按键事件完成之前发生。但是你真的需要完全阻止用户关闭窗口吗?为什么不显示一个确认对话框呢?这是出于安全考虑。应用程序不应该被关闭,只能由另一台计算机远程控制,这就是为什么我在通过强制终止声音远程关闭/重新启动时没有问题,就像你在编写病毒或恶意软件一样