Thanks a ton pete. Worked perfectly. Sorry for not making myself clear from the first time itself..<br><br><div class="gmail_quote">On Wed, Nov 10, 2010 at 10:06 PM,  <span dir="ltr"><<a href="mailto:pyqt-request@riverbankcomputing.com">pyqt-request@riverbankcomputing.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Date: Wed, 10 Nov 2010 17:36:32 +0100<br>
From: "Hans-Peter Jansen" <<a href="mailto:hpj@urpla.net">hpj@urpla.net</a>><br>
To: <a href="mailto:pyqt@riverbankcomputing.com">pyqt@riverbankcomputing.com</a><br>
Subject: Re: [PyQt] How can i capture activated signal of Tray Icon??<br>
Message-ID: <<a href="mailto:201011101736.32188.hpj@urpla.net">201011101736.32188.hpj@urpla.net</a>><br>
Content-Type: text/plain;  charset="utf-8"<br>
<br>
On Wednesday 10 November 2010, 16:30:03 Jebagnana Das wrote:<br>
> Thanks pete for your reply.<br>
><br>
> I think you've misunderstood the core of the problem. The problem<br>
> here is not the elif construct(Even changed the code, had no effect).<br>
<br>
Well, it might be a poor answer to a poorly formulated question then?<br>
Anyway..<br>
<br>
> If we double click on the tray icon, on completion of the first click<br>
> this function gets called, and once again it's called when you finish<br>
> your second click.. Any solutions...<br>
<br>
Ah, now I understand your problem. The Trigger event is always thrown,<br>
even in the DoubleClick case. Hmm, now you found out, why the Trolls<br>
didn't call the former event just LeftClick ;-), and fixing this would<br>
shift the issue into DoubleClick handling.<br>
<br>
Here's, how I would solve such an issue:<br>
<br>
import sys<br>
from PyQt4.QtCore import *<br>
from PyQt4.QtGui import *<br>
<br>
class MainWindow(QMainWindow):<br>
<br>
    def __init__(self, parent=None):<br>
        super(MainWindow, self).__init__(parent)<br>
        self.trayIcon = QSystemTrayIcon(QIcon("some.png"), self)<br>
        self.trayIcon.activated.connect(self.onTrayIconActivated)<br>
        self.trayIcon.show()<br>
        self.disambiguateTimer = QTimer(self)<br>
        self.disambiguateTimer.setSingleShot(True)<br>
        self.disambiguateTimer.timeout.connect(<br>
                self.disambiguateTimerTimeout)<br>
<br>
    def onTrayIconActivated(self, reason):<br>
        print "onTrayIconActivated:", reason<br>
        if reason == QSystemTrayIcon.Trigger:<br>
            self.disambiguateTimer.start(qApp.doubleClickInterval())<br>
        elif reason == QSystemTrayIcon.DoubleClick:<br>
            self.disambiguateTimer.stop()<br>
            print "Tray icon double clicked"<br>
<br>
    def disambiguateTimerTimeout(self):<br>
        print "Tray icon single clicked"<br>
<br>
<br>
if __name__ == "__main__":<br>
    app = QApplication(sys.argv)<br>
    w = MainWindow()<br>
    w.show()<br>
    sys.exit(app.exec_())<br>
<br>
<br>
Pete<br>
<br>
> Am Tuesday 09 November 2010 15:08:29 schrieb Jebagnana Das:<br>
> > > Thanks Zoltan.. It did help a lot.. But if i want to capture<br>
> > > single click and double click events of the mouse separately i'm<br>
> > > afraid this can't be used..<br>
> > ><br>
> > > def onTrayIconActivated(self, reason):<br>
> > >         if reason == QSystemTrayIcon.DoubleClick:<br>
> > >             print('tray icon double clicked')<br>
> > ><br>
> > >         if reason == QSystemTrayIcon.Trigger:<br>
> > >             print("Tray icon single clicked")<br>
> > ><br>
> > > If i double click the tray icon it executes both if conditions.<br>
> > > Any way<br>
> ><br>
> > of<br>
> ><br>
> > > resolving this?. Thanks again..<br>
> ><br>
> > elif instead of second if perhaps?<br>
> ><br>
> > Pete<br>
> ><br><br>
</blockquote></div><br>