PyQt: Show menu in a system tray application

前端 未结 6 1121
后悔当初
后悔当初 2020-12-02 08:45

First of all, I\'m an experienced C programmer but new to python. I want to create a simple application in python using pyqt. Let\'s imagine this application it is as simple

6条回答
  •  孤街浪徒
    2020-12-02 09:24

    I think I would prefer the following as it doesn't seem to depend upon QT's internal garbage collection decisions.

    import sys
    from PyQt4 import QtGui
    
    class SystemTrayIcon(QtGui.QSystemTrayIcon):
        def __init__(self, icon, parent=None):
            QtGui.QSystemTrayIcon.__init__(self, icon, parent)
            self.menu = QtGui.QMenu(parent)
            exitAction = self.menu.addAction("Exit")
            self.setContextMenu(self.menu)
    
    def main():
        app = QtGui.QApplication(sys.argv)
        style = app.style()
        icon = QtGui.QIcon(style.standardPixmap(QtGui.QStyle.SP_FileIcon))
        trayIcon = SystemTrayIcon(icon)
    
        trayIcon.show()
        sys.exit(app.exec_())
    
    if __name__ == '__main__':
        main()
    

提交回复
热议问题