首页 > 代码库 > PYQT窗口托盘目录

PYQT窗口托盘目录

#UI.py,通过UI设计师制作后直接转换为UI.py脚本

# -*- coding: utf-8 -*-

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName(_fromUtf8("Form"))
        Form.resize(400, 300)

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        Form.setWindowTitle(QtGui.QApplication.translate("Form", "Form", None, QtGui.QApplication.UnicodeUTF8))

 

 

#UI.py,可视化UI.py

# -*- coding: utf-8 -*-

from PyQt4 import QtCore, QtGui, Qt
from UI import *

 

class MainWindow(QtGui.QMainWindow): 

 

    def __init__(self,parent=None):

 

        QtGui.QWidget.__init__(self,parent)
        self.ui=Ui_Form()
        self.ui.setupUi(self)

        #显示托盘图标
        self.trayIcon = QtGui.QSystemTrayIcon(self)
        self.trayIcon.setIcon(QtGui.QIcon("images/logo.png"))
        self.trayIcon.show()
        #双击托盘信号槽
        self.trayIcon.activated.connect(self.trayClick)
        #激活右键托盘菜单
        self.trayMenu()

 

    #定义双击托盘事件
    def trayClick(self,reason):

 

       if reason==QtGui.QSystemTrayIcon.DoubleClick:
           self.showNormal()
       else:
           pass

 

    #创建右击托盘菜单
    def trayMenu(self):

 

        #托盘提示信息
        self.trayIcon.setToolTip("托盘测试软件")
        #菜单项1
        img_open = QtGui.QIcon("images\logo.png")
        self.restoreAction = QtGui.QAction(img_open,"打开主窗口", self)
        self.restoreAction.triggered.connect(self.showNormal)
        #菜单项2
        self.quitAction = QtGui.QAction("退出", self)
        self.quitAction.triggered.connect(QtGui.qApp.quit)
        #创建托盘目录
        self.trayIconMenu = QtGui.QMenu(self)
        self.trayIconMenu.addAction(self.restoreAction)
        self.trayIconMenu.addSeparator()#添加分隔线
        self.trayIconMenu.addAction(self.quitAction)
        #设置目录为创建的目录
        self.trayIcon.setContextMenu(self.trayIconMenu)

 

if __name__ == "__main__":

 

    import sys

 

    app = QtGui.QApplication(sys.argv)
    myapp=MainWindow()
    myapp.show()
    app.exec_()