gpt4 book ai didi

c++ - 部署时窗口下的qtcreator托盘图标不显示

转载 作者:行者123 更新时间:2023-11-30 04:25:40 27 4
gpt4 key购买 nike

我正在尝试部署一个在 QT Creator 中制作的 QT 应用程序,它在关闭时返回到系统托盘。

我制作了一个 svg 托盘图标,当我从 QT Creator 运行它时,无论是在调试还是在 Windows 7 下的 Release模式下,托盘图标都会出现,但是当我将所有内容复制到另一个目录以制作可分发的存档时它,托盘图标不再显示。

当然,我已经在寻找解决方案,但我已经找到了所有我已经找到的东西。

所以我有:

项目根目录下的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();

最佳答案

  1. 在您的应用程序目录中创建 iconegines 目录(例如:c:\MyApp\iconengines)。
  2. 将 qsvgicon.dll 从 qt 插件目录(在我的例子中是 c:\qt\5.4\mingw491_32\plugins\iconengines\qsvgicon. dll).
  3. 从 Qt bin 目录(在我的例子中是 c:\qt\5.4\mingw491_32\bin\Qt5Svg.dll)将 QtSvg.dll 复制到您的应用程序目录(例如:c:\MyApp\Qt5Svg.dll)。

附言我知道我来晚了,这个答案是为那些会用谷歌搜索同样问题的人准备的。

关于c++ - 部署时窗口下的qtcreator托盘图标不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12017282/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com