J'ai une petite application qui utilise QSystemTrayIcon pour afficher les informations dans le ballon. Cela fonctionne très bien dans Windows et dans KDE, mais pas dans Gnome Fallback et XFCE. Voici à quoi il ressemble dans KDE lorsque vous cliquez dessus:QSystemTrayIcon: fonctionne dans KDE et Windows, mais pas dans Gnome Fallback/XFCE
Et voici ce qui se passe lorsque l'on clique dans Gnome Repli: il est cliqué avec le bouton gauche de la souris, mais se comporte comme il a été cliqué avec le bouton droit, à savoir montre « Exit », et lorsque vous cliquez dessus avec le bouton droit, montre « a propos »:
est-il un moyen de faire fonctionner l'icône dans chaque dE?
Voici le code:
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);
}
}
Cela pourrait être un bug. Quelle version de Qt utilisez-vous? Si vous utilisez Qt 4, essayez de mettre à jour vers 4.8.7. Ce serait encore mieux si vous pouviez passer à Qt 5 et même, si possible, à la dernière version de 5.6 ou 5.9, car elles sont toutes deux des versions LTS et sont les seules versions actuellement supportées de Qt. –