wxWidgets 开发者论坛

wx 论坛的中文版块 wxWidgets Development (Chinese) ...

↑我也要推荐

使用pynotify和pyqt开发桌面系统托盘版的通知提醒

发布时间:2011-11-11 22:33:15, 关注:+9392, 赞美:+12, 不爽:+7

本文标签: pynotify pyqt

原始出处: 农夫花园

上篇已经完成了一个通知提醒程序,但是还有些不足。
功能呆板,不能很方便的在不需要的时候关闭。那么就是接下去的系统托盘版本的提醒出炉了。
需求:
1. 通知功能不可少
2. 不再是个Console程序
2. 界面上能关闭
3. 好看点.
原材料: pynotifypyqt
热点:
1. 需要一个定时获取通知的机制 -> 采用定时器的方式进行.
2. 提醒方式依旧采用桌面通知的方式
3. 无主界面,但是在系统托盘处存在。
4. 通过系统托盘处的菜单选择可退出。
开工
1. 启动qtdesigner,创建一个默认的光版主窗口就好。
2. 上代码

class Alert(QMainWindow,Ui_desknotify):
  def __init__(self,parent=None):
    super(Alert, self).__init__(parent)
    self.setupUi(self)
    #--systray--
    self._set_systray()
    #--set timer--
    QTimer.singleShot(50000,self._timeout)  #每50秒一次
  def _timeout(self):
    #alert something.
    self._dosomething()
    QTimer.singleShot(50000,self._timeout) #在任务完成后,再次激发.
  def _dosomething(self):
    pynotify.init("Notify")
    n = pynotify.Notification("Hello DL",'More and More<strong><a href="http://blog.xgarden.net">...</a></strong>')
    n.show()
  def _set_systray(self):
    quit = QAction(QString("&Quit"),self);
    self.connect(quit,SIGNAL("triggered()"),self.close)
    menu = QMenu(self)  #生成一个系统托盘处的菜单.就一个Quit
    menu.addAction(quit);
    self.icon = QSystemTrayIcon(loadICON(),self)  #加载系统托盘处的图标
    self.icon.setToolTip(QString(u"A Alert Coming..."))
    self.icon.setContextMenu(menu)
    self.icon.show()

效果不赖,上图看看.
运行效果.

鼠标Tips效果

菜单

下载源代码在此

如果你觉得本站对你有帮助,欢迎向本站赞助 :P

使用支付宝捐赠

Copyright© Python4cn(news, jobs) simple-is-better.com, 技术驱动:powered by web.py 空间主机:Webfaction

版权申明:文章转载已注明出处,如有疑问请来信咨询。本站为 python 语言推广公益网站,与 python 官方没有任何关系。

联系/投搞/留言: en.simple.is.better@gmail.com 向本站捐赠