[PyQt] Two problems with QSystemTrayIcon

Adam Batkin adam at batkin.net
Sun Mar 30 00:14:05 GMT 2008


I know it's been a while since you posted (and even long since I've read 
the list archives), so maybe you have figured this out already, but just 
in case (and so future folks can Google it)...

In order to make the tray icon disappear properly, you need to call 
hide() or setVisible(False) on it first, but of course you have to do 
that within your main loop. So you'll probably need to hook your quit 
signal up to a helper function that will hide the tray, then actually exit.

Hope this helps,

-Adam Batkin

duncan duncan wrote:
> Hello.
> 
> I am trying to put an icon into the system tray area using 
> QSystemTrayIcon. All work well except when I close the program.
> 
> I put the icon in the area using this code:
> 
> ----
>     icon=QtGui.QIcon("pixmaps/todo_list.png")
>     systray=QtGui.QSystemTrayIcon(icon)
>     #systray.setIcon(icon)
>     menu = QtGui.QMenu()
>     quitAction = menu.addAction('Quit')
>     systray.setContextMenu(menu)
>     quitAction.connect(quitAction, QtCore.SIGNAL("triggered()"),  
> ui.QuitApp)
>     systray.show()
>    
>     sys.exit(app.exec_())
> -----
> 
> I have two minor problems:
> 
> 1) when I close the program, the icon stay in the tray area until I move 
> the mouse pointer over it, at this point it go away
> 2) after exiting from the program, I get this error:
> QApplication::qAppName: Please instantiate the QApplication object first
> 
> I have the feeling that the two problems are connected, but I cannot 
> find a clue
> 
> I am working with Qt 4.3.3 and PyQt4.3.3.2 under Windows XP
> 
> Any suggestions ?
> 
> thanks in advance
> Gianluca
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> PyQt mailing list    PyQt at riverbankcomputing.com
> http://www.riverbankcomputing.com/mailman/listinfo/pyqt



More information about the PyQt mailing list