天天看点

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

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_()

上一篇: Spring -- 3.1
下一篇: PYQT窗口风格