0

私は単純な機能を実行しようとしています。トレイアイコンをクリックすると:

 -A- if app is hide > show
 -B- if app is show and is NOT focus > focus it
 -C- if app is show and focus > hide

非常にシンプルですが、フォーカスアプリがあり、試行アイコンをクリックすると、フォーカスが失われ、タスクバーにフォーカスが移ります。つまり、CではなくB条件が真になります。では、それではどうでしょうか。

4

1 に答える 1

0

メインウィンドウのフォーカスアウトイベントの直後にトレイアイコンのクリックイベントが発生した場合は、Cと見なすことができます。したがって、次のようなことができます。

MainWindow::focusOutEvent(...) {
    trayIcon->setJustFocussedOut(true);
    this->someQTimer->start();
}

MainWindow::focusOutDone() {
    trayIcon->setJustFocussedOut(false);
}

QTimerMainWindow::someQTimerがシングルショットモードで非常に短い間隔(たとえば50ミリ秒)に設定されているのはどこですか。このsetJustFocussedOutメソッドは、トレイアイコンにフラグを設定して、ケースCのようにクリックを処理できるようにします。

于 2012-10-15T12:04:30.600 に答える