QSystemTrayIcon に QMenu があります。どちらも QMainWindow オブジェクトのメンバーです。
QSystemTrayIcon の QMenu が、右クリック時 (QSystemTrayIcon::Context の理由) と左クリックの 1 回 (QSystemTrayIcon::Trigger の理由) がまったく同じように動作するようにします。
デフォルトでの右クリック動作は、私が望むように機能します。ただし、左クリックを右クリックとまったく同じように機能させる方法がわかりません。これまでの私の努力は次のことにつながります。
void MainWindow::iconActivated(QSystemTrayIcon::ActivationReason reason)
{
if(reason==QSystemTrayIcon::Trigger) trayIcon->contextMenu()->popup(QCursor::pos());
}
ただし、フォーカスを失ってもメニューは消えませんが、右クリックでコンテキストメニューを表示すると、フォーカスが失われたときにメニューが消えます。
トリガーをコンテキストのように機能させる方法はありますか? たぶん、モック信号か何かを投げる方法ですか?