我正在尝试部署在 QT Creator 中制作的 QT 应用程序,该应用程序在关闭时会返回到系统托盘。
我已经制作了一个 svg 托盘图标,当我从 QT Creator 运行它时,无论是在窗口 7 下的调试模式还是发布模式下,都会显示托盘图标,但是当我将所有内容复制到另一个目录以从中制作可分发的存档时,托盘图标不再显示。
当然,我已经在寻找解决方案,但我找到的所有东西,我都做了。
所以我有什么:
项目根目录中的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();