部署时,窗口下的qtcreator托盘图标不会显示

时间:2012-08-18 08:56:55

标签: c++ qt deployment qt-creator

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

我制作了一个svg托盘图标,当我从QT Creator运行它时,无论是在调试模式还是在Window 7下的发布模式下,托盘图标都显示出来,但当我将所有内容复制到另一个目录以从中创建可分发的归档文件时它,托盘图标不再显示。

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

所以我拥有:

项目根目录中的trayicon.svg文件

  • 创建qrc文件,将trayicon.svg添加到资源文件根目录
  • 项目.pro文件中的
  • :RESOURCES + = resources.qrc
  • 将二进制+必要的dll复制到目标目录
  • 将QT插件imageformats / *复制到目标dir 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 个答案:

答案 0 :(得分:2)

  1. 在app目录中创建iconegines目录(例如:c:\ MyApp \ iconengines)。
  2. 将qsvgicon.dll从qt plugins目录复制到这个新目录(例如:c:\ MyApp \ iconengines \ qsvgicon.dll)(在我的情况下,它是≻ \ qt \ 5.4 \ mingw491_32 \ plugins \ iconengines \ qsvgicon.dll)。
  3. 将QtSvg.dll从Qt bin目录复制到您的应用目录(例如:c:\ MyApp \ Qt5Svg.dll)(在我的情况下,它是' sc:\ qt \ 5.4 \ mingw491_32 \ bin \ Qt5Svg.dll )。
  4. P.S。我知道我迟到了,这个答案适用于那些谷歌同样问题的人。