gpt4 book ai didi

python - 关闭 PyQt 对话框终止父进程? (PyQt4/Pyside) 示例代码

转载 作者:可可西里 更新时间:2023-11-01 09:53:34 24 4
gpt4 key购买 nike

我正在处理的 QSystemTrayIcon 应用程序有问题。

我使用 SystemTrayIcon 作为父项或祖父项创建的任何对话框在关闭时都会终止整个应用程序,即使我覆盖了“拒绝”方法也是如此。

这是一个没有图标的简化示例。运行它时(这里是 Windows 7),任务栏上应该有一个空白托盘图标应用程序。如果您左键单击它,将弹出一个空对话框。单击“X”关闭对话框也将完全终止 python 进程。

from PySide import QtGui, QtCore   
class RestartDialog(QtGui.QDialog):
def __init__(self, parent):
super(RestartDialog, self).__init__()

def reject(self):
self.hide()

class SystemTrayIcon(QtGui.QSystemTrayIcon):

def __init__(self, parent=None):
QtGui.QSystemTrayIcon.__init__(self, parent)
self.activated.connect(self.click_trap)

def click_trap(self, value):
''' Left click tray function '''
if value == self.Trigger: #left click!
self.dialog = RestartDialog(self)
self.dialog.show()

def show(self):
QtGui.QSystemTrayIcon.show(self)


if __name__ == "__main__":
proc = QtGui.QApplication([])
APP = SystemTrayIcon()
APP.show()
proc.exec_()

最佳答案

尝试在创建 QApplication 后添加:

proc.setQuitOnLastWindowClosed(False)

默认情况下为真,因此您的事件循环将在您关闭对话框后终止。

关于python - 关闭 PyQt 对话框终止父进程? (PyQt4/Pyside) 示例代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23070863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com