J'écris une application en C++ avec Qt qui utilise la barre d'état système. J'ai implémenté la barre d'état système à l'aide d'une classe QSystemTrayIcon comme indiqué dans les exemples, mais elle n'a pas le même comportement que les autres icônes de la barre d'état système présentes sur mon ordinateur. Par exemple, j'ai Spotify installé sur Ubuntu 12.04 et il affiche une icône de la barre d'état système avec un menu déroulant. Avec mon application, il affiche une icône de la barre d'état système avec un menu contextuel, ce qui signifie que vous devez cliquer avec le bouton droit pour activer le menu. Avec Spotify, tout ce qui doit être fait est de cliquer sur l'icône et le menu s'affichera. Que puis-je faire pour obtenir des icônes de la barre système natives dans Ubuntu? Je suis d'accord avec l'utilisation de code spécifique pour X11/Linux et pas les fonctions Qt intégrées. Merci beaucoup.Application de la barre d'état système Linux Qt/C++
Voici mon code:
void MainWindow::closeEvent(QCloseEvent *event)
{
if (trayIcon->isVisible()) {
hide();
event->ignore();
}
}
void MainWindow::createActions()
{
restoreAction = new QAction(tr("&Show"), this);
connect(restoreAction, SIGNAL(triggered()), this, SLOT(show()));
quitAction = new QAction(tr("&Exit"), this);
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
}
void MainWindow::createTrayIcon()
{
trayIconMenu = new QMenu(this);
accountsMenu = trayIconMenu->addMenu(tr("Accounts"));
trayIconMenu->addSeparator();
trayIconMenu->addAction(restoreAction);
trayIconMenu->addSeparator();
trayIconMenu->addAction(quitAction);
trayIcon = new QSystemTrayIcon(this);
trayIcon->setContextMenu(trayIconMenu);
}
Ceci montrera le menu, mais il montre seulement un menu de contexte et je veux qu'il montre un menu de non-contexte. Je pense que cela pourrait avoir quelque chose à voir avec Unity, mais je ne suis pas sûr à 100%. –
Je vais marquer votre réponse comme la bonne réponse, mais j'aimerais quand même savoir comment lier le système de menu global d'Ubuntu. Qt 4.8.1 ne semble pas utiliser le système de menu global par défaut et je ne trouve pas le paramètre pour l'activer dans les builds. –
Qu'entendez-vous par «système de menu global»? Menu qui habituellement dans le coin supérieur gauche de la fenêtre qui dans ubuntu en haut de l'écran? – graphite