2

我编写应用程序并在托盘类中有奇怪的错误。在我的课堂上,我QSystemTrayIcon喜欢使用

 tray = new QSystemTrayIcon(this);
 tray->setIcon(QIcon(":/gui/logo.png"));
 ...
 tray->show();

开启WinXPWindows7工作正常,但未Windows 8显示开启图标

    qDebug()<<"System TRAY:"<< QSystemTrayIcon::isSystemTrayAvailable();// outputs true

我使用 Qt5.1.1 MSVC 2012

4

2 回答 2

3

我刚刚遇到了同样的问题,我从 phyatt 使用的解决方案是将imageformats文件夹复制到我的应用程序的plugins文件夹中,现在它工作正常。

于 2013-12-15T12:38:15.610 回答
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 32bitQSystemTrayIcon在 Windows 8 Pro 上的测试结果:在股票 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 旁边有这些依赖项,它运行得很好。

Qt 5.1 依赖项

截屏

于 2013-09-09T21:45:08.387 回答