2010-09-30 9 views
2

J'essaie de cacher mon application à systray et la fonction systray fonctionne correctement, sauf que mon application ne disparaîtra pas de la barre des tâches. L'icône semble disparaître, mais une autre icône apparaît et quand je clique pour montrer cette fenêtre, j'obtiens une fenêtre mais le contenu n'est pas dessiné.Cacher l'application de la barre des tâches

def hideEvent(self, event): 
    self.trayIcon.show() 
    self.hide() 

Comment cela ne masque pas ma fenêtre de la barre des tâches? Il semble que le contenu de la fenêtre est caché mais pas la fenêtre elle-même. Je suis sous Windows 7.

Voici un écran montrant comment il a l'air après que je l'ai minimisais et puis cliquez sur l'icône qui semblent apparaître:

Screenshot

+0

De quel GUI-Toolkit parle-t-on? Plus de contexte, s'il vous plaît. –

+1

Je pensais que la balise pyqt4 disait que j'utilise PyQt4. – dutt

Répondre

0

Vous pouvez également essayer d'appeler la version super-classe de la méthode que vous remplacez. Essayez quelque chose comme

def hideEvent(self, event): 
    self.trayIcon.show() 
    return super(MyClass, self).hideEvent(event) 

où MyClass est le nom de la classe où vous remplacez le hideEvent meth

0

Votre boucle d'événement GUI est coincé quelque part et ne parvient pas à se mettre à jour. Est-ce que vous faites un calcul de longue durée ou quelque chose de similaire?

+0

Le même code fonctionne parfaitement sous Linux. – dutt

+0

Cela ne veut malheureusement rien dire:/ – ismail

+0

Depuis qu'il fonctionne sur Linux, je ne suis pas en cours d'exécution de calcul de longue durée ou similaire. Je garde ce genre de chose dans d'autres threads pour éviter de bloquer le gui. – dutt