您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

PyQt:在系统任务栏应用程序中显示菜单

PyQt:在系统任务栏应用程序中显示菜单

好了,经过一些调试,我发现了问题。完成__init__功能后销毁的QMenu对象,因为它没有父对象。虽然QSystemTrayIcon的父级可以是QMenu的对象,但它必须是Qwidget。此代码有效(请参阅QMenu如何与作为QWidget的QSystemTrayIcon获得相同的父代):

import sys
from PyQt4 import QtGui

class SystemTrayIcon(QtGui.QSystemTrayIcon):

    def __init__(self, icon, parent=None):
        QtGui.QSystemTrayIcon.__init__(self, icon, parent)
        menu = QtGui.QMenu(parent)
        exitAction = menu.addAction("Exit")
        self.setContextMenu(menu)

def main():
    app = QtGui.QApplication(sys.argv)

    w = QtGui.QWidget()
    trayIcon = SystemTrayIcon(QtGui.QIcon("Bomb.xpm"), w)

    trayIcon.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()
其他 2022/1/1 18:35:54 有497人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶