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