我有一個使用QSystemTrayIcon在氣球中顯示信息的小應用程序。它在Windows和KDE中工作正常,但不在Gnome Fallback和XFCE中。下面是它的外觀在KDE點擊時:QSystemTrayIcon:適用於KDE和Windows,但不適用於Gnome Fallback/XFCE
這裏是什麼在Gnome的後備點擊它的時候發生的事情:被點擊鼠標左鍵,但行爲就像它與單擊鼠標右鍵,即顯示「退出」,並且當右鍵點擊,顯示「關於」:
有沒有一種方法,使每一個DE圖標的工作?
下面是代碼:
MyTray::MyTray(QObject *parent) :
QObject(parent)
{
//..........
menu.addAction(new QAction("Выход",this));
connect(menu.actions()[0],SIGNAL(triggered()),this,SLOT(delete_itself()));
icn=QIcon(":new/prefix1/08-01.png");
icon.setIcon(icn);
icon.setContextMenu(&menu);
connect(&icon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)),this,SLOT(icon_clicked(QSystemTrayIcon::ActivationReason)));
icon.show();
//..........
}
void MyTray::icon_clicked(QSystemTrayIcon::ActivationReason reason)
{
if(reason==QSystemTrayIcon::Trigger)
{
QString s;
for(int i=0;i<vec.count();i++)
{
s.append(vec[i].room);
s.append(vec[i].isOpen ? ": открыт" : ": закрыт");
if(vec.count()-1>i) s.append("\n");
}
QSystemTrayIcon::MessageIcon ic = QSystemTrayIcon::MessageIcon(QSystemTrayIcon::Information);
icon.showMessage("Состояние",s,ic,20000);
}
}
它_might_可能是一個錯誤。你使用的是什麼版本的Qt?如果使用Qt 4,請嘗試更新到4.8.7。如果你可以轉移到Qt 5甚至可能的話,到5.6或5.9的最新版本,那將會更好,因爲它們都是LTS版本,並且是目前唯一支持的Qt版本。 –