1
我想在左鍵單擊時顯示上下文菜單,然後雙擊運行應用程序。 爲此,我有下面的代碼:QSystemTrayIcon激活信號:DoubleClick without Trigger
...
connect(this, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(slotActivated(QSystemTrayIcon::ActivationReason)));
...
void MyTray::slotActivated(ActivationReason reason)
{
if(reason==QSystemTrayIcon::DoubleClick)
startApp();
else
if(reason==QSystemTrayIcon::Trigger
|| reason==QSystemTrayIcon::MiddleClick)
contextMenu()->popup(QCursor::pos());
}
它的工作原理,但對於雙擊情況下,我有兩個插槽電話 - 一個用於觸發,然後才適用於DoubleClick。結果上下文菜單顯示並隱藏片刻。 有沒有辦法避免這種情況?
好主意,但我仍然希望有一個更直接的解決方案 – johngull
嗯,你可以使用一個計時器,等待片刻,看看它實際上是一個雙擊([這裏的例子](http:// pastebin。 com/5JWykSgU)),但事件過濾器是真正的方式去和恕我直言,也相當直接了當。 – TheDarkKnight
在這個例子中,通過'QApplication :: doubleClickInterval()'替換'300'更好。 – Ilya