Bonjour à tous

Voilà, je suis en Python avec PyQt4, mais je suppose que la question reste valide.
J'ai une fenêtre que je souhaite réduire dans le systray. Jusque là pas de problème. Je regarde l'example fourni avec la doc, et je me fais une petite classe

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
class Form(QtGui.QWidget):
 
    def __init__(self):
        super(Form, self).__init__()
        self.trayIcon = QtGui.QSystemTrayIcon(QtGui.QIcon("images/icon.png"), self)
        QtCore.QObject.connect(self.trayIcon,
                               QtCore.SIGNAL("activated(QSystemTrayIcon::ActivationReason)"),
                               self.icon_activated)
 
    def closeEvent(self, event):
        if not self.trayIcon.isVisible():
            self.trayIcon.show()
            self.hide()
            event.ignore()
        else:
            event.accept()
 
    def icon_activated(self, reason):
        if reason == QtGui.QSystemTrayIcon.Trigger:
            self.trayIcon.hide()
            self.show()
On ferme la fenêtre, elle va dans le systray.
On clique sur l'icône dans le systray, la fenêtre revient.
Bien, cela marche correctement, mais ce n'est pas tout à fait ce que je veux.

Je veux que la fenêtre aille dans le systray lorsqu'on la réduit.
Je remplace le closeEvent par un hideEvent (même contenu), mais le comportement n'est plus du tout le même.

1) Sous Linux, la fenêtre disparaît bien de la barre des tâches, mais pas sous Windows
2) Lorsque je restaure ma fenêtre, elle n'est plus au premier plan, mais en arrière.

Quelqu'un pourrait-il m'expliquer ce que je fais de travers ?
Merci d'avance

Qt 4.4
PyQt 4.4.2
Python 2.5.2