On Mar 31, 11:49 am, Alex Teiche <[EMAIL PROTECTED]> wrote: > On Mar 30, 3:50 pm, Benjamin <[EMAIL PROTECTED]> wrote: > > > > > On Mar 29, 11:02 pm, Alex Teiche <[EMAIL PROTECTED]> wrote:> Hello, > > > > I am pretty new to Python, and have never learned C++. I am trying to > > > implement the following thing into my python application: > > > >http://doc.trolltech.com/4.3/qsystemtrayicon.html > > > > Through PyQt. I have been using PyQt for awhile and I know how do use > > > it, but I could not get this specific thing to work. Can someone give > > > me some hints as to get it working in Python? > > > What problems are you having? > > > > Thanks a ton, > > > > Alex > > Thanks everyone for your help. I found the example to be particularly > helpful, and I have made a simplified version just to display an icon > with a quit button in its menu. Once I know how to do that I will > incorporate it into my larger program, with more options and the > ability show messages. The problem is, it doesn't work, and I can't > find out what's wrong. Can you give me some hints? > > Here is the code: > import sys > from PyQt4 import QtGui, QtCore > > class trayIcon(QtGui.QWidget): > def __init__(self, parent=None): > QtGui.QWidget.__init__(self, parent) > > #********Create Actions for the Tray Menu********# > self.quitAction = QtGui.QAction(self.tr("&Quit"), self) > QtCore.QObject.connect(self.quitAction, > QtCore.SIGNAL("triggered()"), QtGui.qApp, QtCore.SLOT("quit()")) > > create_tray_icon() > > self.composeAction.setEnabled(visible) > QtGui.QWidget.setVisible(self, visible) > > self.trayIcon.show() > > def create_tray_icon(self): > self.trayIconMenu = QtGui.QMenu(self) > self.trayIconMenu.addAction(self.composeAction) > self.trayIcon = QtGui.QSystemTrayIcon(self) > self.trayIcon.setContextMenu(self.trayIconMenu) > self.trayIcon.setIcon(bad.svg) > > app = QtGui.QApplication(sys.argv) > sys.exit(app.exec_())
OK, I messed around with it some more, and it works. I just don't know how to set an icon, and the example doesn't help at all. Here is the code: import sys from PyQt4 import QtCore, QtGui class Systray(QtGui.QWidget): def __init__(self): QtGui.QWidget.__init__(self) self.createActions() self.createTrayIcon() #QtCore.QObject.connect(self.trayIcon, QtCore.SIGNAL("messageClicked()"), self.messageClicked) #QtCore.QObject.connect(self.trayIcon, QtCore.SIGNAL("activated(QSystemTrayIcon::ActivationReason)"), self.iconActivated) self.trayIcon.show() def createActions(self): #self.minimizeAction = QtGui.QAction(self.tr("Mi&nimize"), self) #QtCore.QObject.connect(self.minimizeAction, # QtCore.SIGNAL("triggered()"), self, QtCore.SLOT("hide()")) #self.maximizeAction = QtGui.QAction(self.tr("Ma&ximize"), self) #QtCore.QObject.connect(self.maximizeAction, # QtCore.SIGNAL("triggered()"), self, # QtCore.SLOT("showMaximized()")) #self.restoreAction = QtGui.QAction(self.tr("&Restore"), self) #QtCore.QObject.connect(self.restoreAction, # QtCore.SIGNAL("triggered()"), self, # QtCore.SLOT("showNormal()")) self.quitAction = QtGui.QAction(self.tr("&Quit"), self) QtCore.QObject.connect(self.quitAction, QtCore.SIGNAL("triggered()"), QtGui.qApp, QtCore.SLOT("quit()")) def createTrayIcon(self): self.trayIconMenu = QtGui.QMenu(self) #self.trayIconMenu.addAction(self.minimizeAction) #self.trayIconMenu.addAction(self.maximizeAction) #self.trayIconMenu.addAction(self.restoreAction) #self.trayIconMenu.addSeparator() self.trayIconMenu.addAction(self.quitAction) self.trayIcon = QtGui.QSystemTrayIcon(self) self.trayIcon.setContextMenu(self.trayIconMenu) app = QtGui.QApplication(sys.argv) x = Systray() sys.exit(app.exec_()) How would I go about setting the icon? -- http://mail.python.org/mailman/listinfo/python-list