QSystemTrayIconを使用してバルーンの情報を表示する小さなアプリケーションがあります。 WindowsとKDEでは問題なく動作しますが、Gnome FallbackとXFCEでは動作しません。QSystemTrayIcon:KDEおよびWindowsでは動作しますが、Gnome Fallback/XFCEでは動作しません。
そしてここでは、Gnomeのフォールバックでそれをクリックしたときに何が起こっているかである:ここでクリックされたとき、それはKDEでどのように見えるかであることは、マウスの左ボタンでクリックされたが、それは右のボタン、すなわちでクリックされたように振る舞います「終了」を示し、そして右ボタンでクリックしたとき、「概要」を示しています。すべての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);
}
}
これはバグである可能性があります。どのバージョンのQtを使用していますか? Qt 4を使用している場合は、4.8.7にアップデートしてみてください。可能であれば、Qt 5に移行することができれば、さらに5.6または5.9の最新リリースにアップグレードすることもできます。どちらもLTSリリースであり、現在サポートされているのはQtの唯一のバージョンです。 –