我正在编写应用程序并在托盘类中有奇怪的错误。在课堂上我使用QSystemTrayIcon
喜欢
tray = new QSystemTrayIcon(this);
tray->setIcon(QIcon(":/gui/logo.png"));
...
tray->show();
在WinXP
和Windows7
上,它正常运行,但未显示Windows 8
图标
qDebug()<<"System TRAY:"<< QSystemTrayIcon::isSystemTrayAvailable();// outputs true
我使用Qt5.1.1 MSVC 2012
答案 0 :(得分:2)
系统托盘图标是否加载,我发现它更依赖于它是否可以加载文件类型。
您的部署环境中是否提供了相应的插件?
http://www.qtcentre.org/threads/43152-Deploying-Qt-Application-on-Windows-Load-JPG-Images-Problem
http://qt-project.org/doc/qt-4.8/deployment-windows.html
希望有所帮助。
更新:Qt 5.1 w / msvc 2012 Windows 8 Pro上QSystemTrayIcon
的32位测试结果:
在库存UI表单项目中使用以下内容编译和构建测试应用程序,
以及mainwindow.cpp中的以下内容
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSystemTrayIcon>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSystemTrayIcon * sys = new QSystemTrayIcon(this);
// sys->setIcon(QIcon("C:/Users/phyatt/Downloads/system-tray.png"));
sys->setIcon(QIcon(":/gui/system-tray.png"));
sys->show();
}
MainWindow::~MainWindow()
{
delete ui;
}
并且在exe旁边有这些依赖项,它运行得很好。
答案 1 :(得分:2)
我遇到了同样的问题,我从phyatt使用的解决方案是将 imageformats 文件夹复制到我的应用程序的插件文件夹中,现在它正常工作。 / p>