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

# python:2.x

__author__ = 'Administrator'

from PyQt4.QtGui import *

from PyQt4.Qt import *

from PyQt4.QtCore import *

from tp import Ui_Form

import sys

from PyQt4.QtCore import Qt

QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))

class Example(QDialog,Ui_Form):

def __init__(self,parent=None):

super(Example, self).__init__(parent)

self.setupUi(self)

self.setContextMenuPolicy(Qt.CustomContextMenu)

self.connect(self,SIGNAL('customContextMenuRequested(const QPoint&)'),self.on_context)

self.createContexMenu()

self.tp.clicked.connect(self.bsfs)

def bsfs(self):

self.setContextMenuPolicy(Qt.CustomContextMenu)

self.x1=QMenu(self)

self.a1=self.x1.addAction(u'托盘')

self.a1.triggered.connect(self.menus)

self.x1.exec_(self.mapToGlobal(QPoint(130,98)))

def on_context(self,point):

self.contextMenu.exec_(self.mapToGlobal(point))

def createContexMenu(self):

"""

创建右击菜单

"""

self.setContextMenuPolicy(Qt.CustomContextMenu)

self.contextMenu=QMenu(self)

self.bsfsc=self.contextMenu.addAction(u'托盘')

self.trayicon=QSystemTrayIcon(self)

self.trayicon.setIcon(QIcon(r'tp.png'))

self.trayicon.setToolTip(u'托盘')

self.bsfsc.triggered.connect(self.menus)

def showMessage(self):

icon=QSystemTrayIcon.Information

self.trayicon.showMessage(u"提示信息",u"点我干嘛?",icon)

def trayclick(self,res):

if res==QSystemTrayIcon.DoubleClick:

self.showNormal()

elif res==QSystemTrayIcon.MiddleClick:#中击

self.showMessage()

def menus(self):

self.min=QAction(u'最小化',self,triggered=self.hide)

self.max=QAction(u'最大化',self,triggered=self.showMaximized)

self.Hy=QAction(u'还愿',self,triggered=self.showNormal)

self.qiuct=QAction(u'退出',self,triggered=qApp.quit)

self.traymen=QMenu(QApplication.desktop())

self.traymen.addAction(self.min)

self.traymen.addAction(self.max)

self.traymen.addAction(self.Hy)

self.traymen.addAction(self.qiuct)

self.trayicon.setContextMenu(self.traymen)

self.trayicon.activated.connect(self.trayclick)

self.trayicon.show()

self.qiuct.triggered.connect(self.qiut)

def qiut(self):

self.showMessage()

self.close()

def activation(self,activation_reason):#托盘

if activation_reason==QSystemTrayIcon.Trigger:

self.show()

app =QApplication(sys.argv)

QApplication.setQuitOnLastWindowClosed(False)

x = Example()

x.show()

sys.exit(app.exec_())

如图:

pyqt 托盘例子学习的更多相关文章

  1. pyqt托盘例子

    # -*- coding: cp936 -*- #!/usr/bin/env python # -*- coding:utf-8 -*- from PyQt4 import QtCore, QtGui ...

  2. pyqt QTreeWidget例子学习

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import  * from Py ...

  3. pyqt columnView例子学习

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import  * from Py ...

  4. pyqt QTableView例子学习

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import  * from Py ...

  5. pyqt QTableWidget例子学习(重点)

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' from PyQt4.QtGui import * from PyQ ...

  6. pyqt 正则表达式例子学习

    def rex01(self): username=QtCore.QRegExp('[a-zA-Z0-9_]{2,10}') self.names.setValidator(QtGui.QRegExp ...

  7. pyqt tabWidget例子学习1

    from PyQt4 import QtGui from PyQt4 import QtCore from PyQt4.QtCore import pyqtSlot,SIGNAL,SLOT impor ...

  8. pyqt 配置文件例子学习

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' import sys,datetime from PyQt4.QtC ...

  9. pyqt 自定义例子学习

    # -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' import sys from PyQt4.QtCore impor ...

随机推荐

  1. js笔记01

    js编写页面特效动态脚本类型的语言变量:存储数据(日常生活中的东西,比如电视,手机,电脑,出生年份...)语法: var obj=value; obj不能为数字开头,且区分大小写 value对应数据类 ...

  2. JavaScript 获取CSS媒体查询信息

    var result = window.matchMedia('(max-width: 700px)'); if (result.matches) { console.log('页面宽度小于等于700 ...

  3. POJ 3468 A Simple Problem with Integers //线段树的成段更新

    A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 59046   ...

  4. swing入门例子

    // a simple exmple that can show the basis of swing------------------------------------------------- ...

  5. 解决Fetching android sdk component information加载过久问题

    安装完成后,如果直接启动,Android Studio会去获取 android sdk 组件信息,这个过程相当慢,还经常加载失败,导致Android Studio启动不起开.解决办法就是不去获取and ...

  6. C# XML 根级别上的数据无效

    XmlDocument加载xml方法 XmlDocument doc = new XmlDocument(); //加载xml 字符串 doc.LoadXml(_Store); //加载xml文件 d ...

  7. Sql Server根据表名获得所有列及其属性

    select a.name columnname,c.name as typename,case when a.is_nullable =0 then 'Not Null' else 'Null' e ...

  8. Android应用中使用Popupmenu

    最终效果: 页面布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns: ...

  9. js处理数学经典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少?

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  10. MfC基础--绘图基础--win32

    1.vc使用的控件分为三类: windows标准控件--MFC对这些进行了再封装 ActiveX 控件 其他MFC控件类 2.CWind是所有窗口的基类 3.GDI也属于一种API,主要用于绘图,(G ...