使用PyQt4中的QSystemTrayIcon退出后访问冲突

时间:2015-04-11 19:41:26

标签: python-3.x pyqt4

我写了一个简单的类来通知用户使用托盘气球消息。这是代码:

# -*- coding: utf8 -*-
import sys
import time
from PyQt4 import QtGui

class TrayInformer():
    def __init__(self, icon_file):
        self.app = QtGui.QApplication(sys.argv)
        self.app.setQuitOnLastWindowClosed(False)
        self.tray_icon = QtGui.QSystemTrayIcon(
            QtGui.QIcon(icon_file)
        )

    def notify(self, title, message, wait_time=1000):
        self.tray_icon.show()
        self.tray_icon.showMessage(title, message)
        time.sleep(wait_time / 1000)
        self.tray_icon.hide()

inf = TrayInformer('timeico.ico')
inf.notify('Error', 'Connection refused', 5000)
inf.notify('test', 'test', 500)

运行后我有时得到:Process finished with exit code -1073741819 (0xC0000005)。可能是什么问题?

1 个答案:

答案 0 :(得分:1)

尝试使用指定的父实例化QSystemTrayIcon。我退出时出现类似随机崩溃的情况,令人惊讶的是托盘图标似乎导致问题

  

< ...>问题可能是C ++的随机顺序   实例被破坏了。明确地定义一个对象,或给它一个合适的父对象是处理它的最佳方法。   QSystemTrayIcon still crashed app (PyQt4 4.9.1)