我正在编写一个使用QSystemTrayIcon
的应用程序。一切工作如预期,但图标没有显示在右上角的Unity通知区域,而只是在左上角。
当前的构建环境是clang 3.4, QT 5.3在Ubuntu 14.04上。当与MinGW交叉编译并在wine中运行应用程序时,图标显示正确。
这可能是Ubuntu中缺少的设置吗?
下面是一个产生相同行为的简单代码片段:#include <QSystemTrayIcon>
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPixmap pixmap(32, 32);
pixmap.fill(Qt::red);
QIcon icon(pixmap);
QSystemTrayIcon trayIcon(icon);
QObject::connect(&trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), &app, SLOT(quit()));
trayIcon.show();
return app.exec();
}
您所描述的问题是一个已知且目前未修复的错误。见https://bugreports.qt.io/browse/qtbug - 31762
解决方案:
sudo apt-add-repository ppa:gurqn/systray-trusty
sudo apt-get update
sudo apt-get upgrade