1

QSystemTrayIcon を使用して、アプリケーションの初期化後にメッセージを表示しようとしています。私のメイン ループは、ゼロ周期のシングル ショット タイマーを使用して、すぐに Init() 関数を呼び出します。

int r;
QTimer::singleShot(0, &app, SLOT(Init()));
r = app.exec();
return r;

いくつかの初期化手順と、適切なアイコンが問題なく表示される MyApplication::SetupTrayIcon() でのtrayIcon の作成の後、MyApplication クラスで別の関数を呼び出します。

QApplication::processEvents();
_pTrayIcon->showMessage("TITLE", "TRAY TEXT SAMPLE");

QSystemTrayIcon インスタンスを QApplication (サブクラスである MyApplication) の子、QWidget の子にしようとしましたが、何も起こりません。親がいなくても、何も起こりません。

システムは Windows XP SP3 であり、この世のものではありません。

4

1 に答える 1

3

解決しました。

Explorer.exe では、システム レジストリによってシステム トレイのバルーン ヒントが無効になっています (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\EnableBalloonTips が 0 に設定されていました)。

于 2010-06-09T23:13:02.450 に答える