4

コード自体には実際には問題はありませんが、プログラムを起動時に (つまり、ユーザーがログインするたびに) 実行するように追加すると、トレイ アイコンの作成に失敗します。まだ完全に作成/初期化されていません。その解決策はありますか?今、10秒間隔で10回リトライするようなことを考えています。

4

3 に答える 3

4

それは確かに競合状態です。はい、再試行は良い考えですが、代わりに遅延して行います。アプリを起動しますが、QTimer::singleShot() を使用して 5 秒 (または何でも) 遅延させてから、タスクバーに接続しようとします。その後再試行する場合 (これはおそらく良い考えです)、より長く遅延させます (再試行が速すぎるため、すぐに再試行しても成功しない可能性が高いため)。

于 2011-03-13T17:01:47.920 に答える
2

http://developer.qt.nokia.com/doc/qt-4.8/qsystemtrayicon.htmlからの引用(2 番目の段落に注意してください):

「ユーザーのデスクトップにシステム トレイが存在するかどうかを確認するには、QSystemTrayIcon::isSystemTrayAvailable() 静的関数を呼び出します。」...

「システム トレイ アイコンが作成されたときにシステム トレイが利用できないが、後で利用可能になった場合、アイコンが表示されていれば、QSystemTrayIcon はシステム トレイにアプリケーションのエントリを自動的に追加します。」

于 2012-02-13T07:26:57.630 に答える