1

閉じるとシステム トレイに戻る QT Creator で作成された QT アプリケーションをデプロイしようとしています。

svg トレイ アイコンを作成しました。ウィンドウ 7 のデバッグおよびリリース モードで QT Creator から実行すると、トレイ アイコンが表示されますが、すべてを別のディレクトリにコピーして配布可能なアーカイブを作成すると、トレイ アイコンが表示されなくなりました。

もちろん、私はすでに解決策を探していますが、まだ見つけたものはすべて作成しました。

だから私が持っているもの:

プロジェクトルートにあるtrayicon.svgファイル

  • qrc ファイルが作成され、trayicon.svg がリソース ファイルのルートに追加されます
  • プロジェクト .pro ファイル: RESOURCES += resources.qrc
  • バイナリ + 必要な dll をターゲット ディレクトリにコピー
  • QT プラグイン imageformats/* をターゲット ディレクトリ imageformats にコピーしました
  • QApplication a(argc, argv); を追加しました。a.addLibraryPath(a.applicationDirPath()); main.cppへ

これがこれまでに見つけたすべてですが、それでもシステムトレイアイコンが表示されません

私は何が欠けていますか?

(現在のqt 4.8 +ちなみに現在のqtcreator)

@netrom

MainWindow のコード: QMainWindow コンストラクター:

trayIcon = new QSystemTrayIcon(this);
showAction = new QAction(tr("&Show"), this);
connect(showAction, SIGNAL(triggered()), this, SLOT(show()));
quitAction = new QAction(tr("&Quit"), this);
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
trayIconMenu = new QMenu(this);
trayIconMenu->addAction(showAction);
trayIconMenu->addSeparator();
trayIconMenu->addAction(quitAction);
trayIcon->setContextMenu(trayIconMenu);
connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
trayIcon->setIcon(QIcon(":trayicon.svg"));
trayIcon->show();
4

1 に答える 1

4
  1. アプリ ディレクトリに iconegines ディレクトリを作成します (例: c:\MyApp\iconengines)。
  2. qsvgicon.dll をこの新しいディレクトリ (例: c:\MyApp\iconengines\qsvgicon.dll) に qt プラグイン ディレクトリ (私の場合は c:\qt\5.4\mingw491_32\plugins\iconengines\qsvgicon.dll) からコピーします。
  3. QtSvg.dll を Qt bin ディレクトリ (私の場合は c:\qt\5.4\mingw491_32\bin\Qt5Svg.dll) からアプリ ディレクトリ (例: c:\MyApp\Qt5Svg.dll) にコピーします。

PS私は遅れていることを知っています。この答えは、同じ問題をグーグルで検索する人向けです。

于 2015-11-27T05:20:03.583 に答える