implement a system tray with basic functionality

This commit is contained in:
Kilian Valkhof 2010-04-21 13:28:52 +02:00
parent 7cf707d5a3
commit 773efc6870
2 changed files with 42 additions and 1 deletions

View file

@ -28,6 +28,8 @@ class StartQT4(QMainWindow):
self.ui = Ui_trimage() self.ui = Ui_trimage()
self.ui.setupUi(self) self.ui.setupUi(self)
self.systemtray = Systray(self)
self.showapp = True self.showapp = True
self.verbose = True self.verbose = True
self.imagelist = [] self.imagelist = []
@ -420,6 +422,43 @@ class Worker(QThread):
else: else:
print >> sys.stderr, u"[error] %s could not be compressed" % image.fullpath print >> sys.stderr, u"[error] %s could not be compressed" % image.fullpath
class Systray(QWidget):
def __init__(self, parent):
QWidget.__init__(self)
self.parent = parent
self.createActions()
self.createTrayIcon()
self.trayIcon.show()
def createActions(self):
self.quitAction = QAction(self.tr("&Quit"), self)
QObject.connect(self.quitAction, SIGNAL("triggered()"),
qApp, SLOT("quit()"))
self.addFiles = QAction(self.tr("&Add and compress"), self)
icon = QIcon()
icon.addPixmap(QPixmap(self.parent.ui.get_image(("pixmaps/list-add.png"))), QIcon.Normal, QIcon.Off)
self.addFiles.setIcon(icon)
QObject.connect(self.addFiles, SIGNAL("triggered()"), self.parent.file_dialog)
self.recompress = QAction(self.tr("&Recompress"), self)
icon2 = QIcon()
icon2.addPixmap(QPixmap(self.parent.ui.get_image(("pixmaps/view-refresh.png"))), QIcon.Normal, QIcon.Off)
self.recompress.setIcon(icon2)
QObject.connect(self.addFiles, SIGNAL("triggered()"), self.parent.recompress_files)
def createTrayIcon(self):
self.trayIconMenu = QMenu(self)
self.trayIconMenu.addAction(self.addFiles)
self.trayIconMenu.addAction(self.recompress)
self.trayIconMenu.addAction(self.quitAction)
self.trayIcon = QSystemTrayIcon(self)
self.trayIcon.setContextMenu(self.trayIconMenu)
self.trayIcon.setIcon(QIcon(self.parent.ui.get_image("pixmaps/trimage-icon.png")))
if __name__ == "__main__": if __name__ == "__main__":
app = QApplication(sys.argv) app = QApplication(sys.argv)
myapp = StartQT4() myapp = StartQT4()

View file

@ -36,7 +36,9 @@ class Ui_trimage(object):
""" Setup the entire UI """ """ Setup the entire UI """
trimage.setObjectName("trimage") trimage.setObjectName("trimage")
trimage.resize(600, 170) trimage.resize(600, 170)
trimage.setWindowIcon(QIcon(self.get_image("pixmaps/trimage-icon.png")))
trimageIcon = QIcon(self.get_image("pixmaps/trimage-icon.png"))
trimage.setWindowIcon(trimageIcon)
self.centralwidget = QWidget(trimage) self.centralwidget = QWidget(trimage)
self.centralwidget.setObjectName("centralwidget") self.centralwidget.setObjectName("centralwidget")