平台: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