Seite 1 von 1

QSystemTrayIcon::ActivationReason

Verfasst: 17. Juni 2010 17:29
von itsamess
Ist zwar Python, aber bei C++ ist es das gleiche. Bei einem Doppelklick bekomme ich immer "Hallo Welt!"

Was ich bei einem Doppelklick möchte, ist aber nur das "Welt!" Kann mir jemand sagen, wie ich das am besten angehe?? (Ist das nicht irgendwie auch buggy? Wenn bei einem "Doubleclick" immer auch "Trigger" Reason ist?)

Code: Alles auswählen

QtCore.QObject.connect(self.trayIcon, QtCore.SIGNAL("activated(QSystemTrayIcon::ActivationReason)"), self.iconActivated)

...

def iconActivated(self, reason):
        if reason == QtGui.QSystemTrayIcon.Trigger:
              print "Hallo"
            
        if reason == QtGui.QSystemTrayIcon.DoubleClick:        
              print "Welt!"

Verfasst: 17. Juni 2010 18:09
von franzf
Ich hab das jetzt nicht getestet, aber ich nehme an, dass die beiden Signale nacheinander kommen. Erst triggered, dann doubleCLicked.
Mach mal deinen Slot so:

Code: Alles auswählen

def iconActivated(self, reason):
        print "\n"
        if reason == QtGui.QSystemTrayIcon.Trigger:
              print "Hallo"
           
        if reason == QtGui.QSystemTrayIcon.DoubleClick:       
              print "Welt!" 
Stehen Hallo und Welt untereinander, weißt du dass der Slot 2x aufgerufen wurde ;)
Ansonsten ist was faul.

Verfasst: 17. Juni 2010 18:39
von itsamess
Strange finde ich das.

Kann man denn über Qt so was wie die "double click time" rausfinden, ohne sich mit den einzelnen Betriebssystemen auseinanderzusetzen?

Verfasst: 17. Juni 2010 18:41
von franzf
itsamess hat geschrieben:Kann man denn über Qt so was wie die "double click time" rausfinden, ohne sich mit den einzelnen Betriebssystemen auseinanderzusetzen?
QApplication::doubleClickInterval()

Verfasst: 17. Juni 2010 22:39
von itsamess
danke. es gibt so suchbegriffe, das ist google einfach nicht mein freund...