【问题标题】:QSystemTrayIcon and Windows8QSystemTrayIcon 和 Windows8
【发布时间】:2013-09-09 21:12:49
【问题描述】:

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

 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

【问题讨论】:

    标签: c++ windows qt


    【解决方案1】:

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

    【讨论】:

      【解决方案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 32bit QSystemTrayIcon 在 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 旁边的这些依赖项,它运行得很好。

      【讨论】:

      • 我用的是png图标,托盘不仅不显示而且根本没有出现
      • 我尝试在 Windows 8、Qt 4.8.4 中重新创建您的错误,但对我来说没有错误。
      • 我使用 Qt5.1.1 MSVC 2012
      • 您尝试过 Qt SysTray 示例吗? qt-project.org/doc/qt-4.8/desktop-systray.html 它应该包含在 Qt 库中。或者您可以从演示程序中启动它。
      • 我认为是Qt5的bug。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2017-07-06
      • 2011-03-01
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多