当前位置: 代码迷 >> QT开发 >> ,托盘图标无法显示
  详细解决方案

,托盘图标无法显示

热度:130   发布时间:2016-04-25 05:05:15.0
求助,托盘图标无法显示
平台:Ubuntu 10.10
qt: Qt 4.5.1

设置托盘图标后,无法显示正常图标,显示为一黑色块,如下图


代码:
C/C++ code
MainWindow::MainWindow(){……    QIcon icon("./icon.png");    trayIcon = new QSystemTrayIcon(this);    trayIcon->setContextMenu(trayIconMenu);    trayIcon->setIcon(icon);    trayIcon->show();    setWindowIcon(icon);}


为什么会这样呢?


------解决方案--------------------
你的托盘图标调用错了,程序启动时找不到这张图片。
应该把icon.png加入到资源文件中,如果资源文件中其前缀为/images,那么正确的做法应当是
QIcon(":/images/icon.png");
如果不编入资源文件,程序必须与图片在同一文件夹内才能找得到
------解决方案--------------------
应该是楼主的图片存放位置的问题,如果以资源文件的形式实现则是将其一块编译在可执行文件中,如果直接在程序中使用的话就应该指明正确的路径。
------解决方案--------------------
给你看下windows下的用法。。linux下文件路径可能有点差别。还有如2楼所说。把东西加到资源文件夹里
//创建并设置托盘图标
trayIcon = new QSystemTrayIcon(this);
trayIcon->setContextMenu(trayIconMenu);
trayIcon->setIcon(QIcon(":/icons/shutdown01.png"));

//显示系统托盘图标
trayIcon->show();
------解决方案--------------------
首先要把icon.png加入到工程当中来,也就是那个.qrc文件中,然后编译,“QIcon icon("./icon.png");”路径不对应该是“image/image/icon.png”(加入你的qrc和文件夹都建的是image目录),还显示不出来的话,也许是你的图片有问题,也许是被人不正确编辑过的

------解决方案--------------------
楼主搞定没

楼上的放qrc,对QT来说是正解,但一定要确认路径。你在qcreator里打开qrc文件,里面看到的路径前加:号即可。


还有标准Linux做法, 图标放在/usr/share/icons/youapp/icons/下,肯定没问题,也要根据需要随时换图标。

Good Luck
  相关解决方案