Форум сайта python.su
Здравствуйте!
Полдня пытаюсь написать казалось бы простейшую программу, которая выводит в системном трее нужную иконку, а через 15 минут ее обновляет. В PyQt не разбираюсь абсолютно, все эти полдня перерыл множество примеров в гугле. За это время в мучениях родился вот этот код:
#!/usr/bin/python import sys from PyQt4 import QtCore from PyQt4 import QtGui def main(): app = QtGui.QApplication(sys.argv) trayIcon = QtGui.QSystemTrayIcon(QtGui.QIcon("../Icons/1.jpg"), app) def icno(): trayIcon = QtGui.QSystemTrayIcon(QtGui.QIcon("../Icons/2.jpg"), app) trayIcon.show() timer = QtCore.QTimer() timer.connect(timer,QtCore.SIGNAL("timeout()"),icno) timer.start(5000) trayIcon.show() sys.exit(app.exec_()) if __name__ == '__main__': main()
Офлайн
Но все равно даже в этом случае в программе он должен обновлять иконку, а он не обновляет ее!Ну так вы и не обнавляеете иконку, а создаете новую
import sys import random from PyQt4 import QtCore, QtGui from urllib2 import urlopen from hashlib import md5 REMOTE_URL = "http://www.gravatar.com/avatar/%s?default=retro&size=32" random.seed(42) def main(): app = QtGui.QApplication(sys.argv) trayIcon = QtGui.QSystemTrayIcon(app) trayIcon.show() def icno(): try: new_icon_data = urlopen(REMOTE_URL % md5(str(random.random())).hexdigest()).read() new_icon = QtGui.QPixmap() new_icon.loadFromData(new_icon_data, format='png') trayIcon.setIcon(QtGui.QIcon(new_icon)) except Exception, ex: print ex timer = QtCore.QTimer() timer.connect(timer,QtCore.SIGNAL("timeout()"),icno) timer.start(5000) sys.exit(app.exec_()) if __name__ == '__main__': main()
Отредактировано EBFE (Сен. 7, 2012 15:54:58)
Офлайн
Спасибо большое! Вы не могли бы мне подсказать какую-нибудь книжку на русском языке, посвященную PyQt? Не посвященную чисто Python, не посвященную чисто Qt (там может рассказываться в применении к C++, у меня есть такая, там лес еще более дремучий), а именно посвященную Qt в применении к Python. А то я чувствую, я далеко не уеду, не зная структуры.
Офлайн