Es gibt diesen alten Thread von mir: Wie erstelle ich einen funktionierenden Indikator mit Qt / C ++? Hier wurde mir vorgeschlagen, die QSystemTray-Bibliothek zum Erstellen eines Tray-Symbols in Ubuntu für meine Anwendung zu verwenden.
Sniqt ist ein Programm, das sich um den Rest kümmert. Wie bekannt, hat Ubuntu die Tray-Symbole entfernt. Stattdessen werden jetzt Indikatoren und nur Indikatoren verwendet. Sniqt konvertiert die Qt-Tray-Symbole in Arbeitsindikatoren.
Das Problem ist, dass es keine sehr anständige Konvertierung macht. Aktionen wie Einzelklick, Mittelklick usw. funktionieren nicht, während sie in Systemen ausgeführt werden, die Tray-Symbole unterstützen.
Gibt es eine Möglichkeit, diese Aktionen wieder herzustellen? Kann ich das QSystemTray-Symbol verwenden und trotzdem diese interessanten (und in meinem Fall sehr hilfreichen) Aktionen in Ubuntu ausführen?
Ich würde mich freuen, auch die Antwort auf den anderen Thread zu erfahren, über den ich zuvor gesprochen habe (wie man mithilfe der GTK-Bibliotheken einen funktionierenden Indikator erstellt und den Absturz verhindert).
Link für Sniqt-Fehler: https://bugs.launchpad.net/sni-qt/+bug/1027652
Antworten:
Es scheint, dass Qt diese Sache zumindest unter Ubuntu Unity nicht unterstützt, selbst wenn ein Signal "aktiviert" ist. Daher würde ich Ihnen empfehlen, GTK und ein normales Trayicon zu verwenden. Ich sehe keine Alternative zu Qt. Sie können sich an die Entwickler von Qt wenden, um dies zu klären.
quelle
sniqt
. Mir ist nicht bewusst, dass Anwendungsindikatoren sogar zwischen Links- und Rechtsklicks unterscheiden können. Dies war auch für mich eine ständige Quelle der Frustration.Unity unterstützt nach Wahl nicht das, was Sie als "anständige Tray-Symbole" bezeichnen. Es sind Indikatoren oder nichts. Von dort haben Sie mehrere Möglichkeiten:
Machen Sie sich mit den eingeschränkten Anzeigefunktionen zufrieden. Sie können das von Ihrem Indikator verwendete Menü mit der Standardmethode QSystemTray.setContextMenu () festlegen.
Trennen Sie Ihre App vollständig vom System. Verwandeln Sie es wie in ein schwebendes Symbol auf dem Desktop, das Mittel- und Rechtsklicks akzeptieren kann, wie Gott und Matthias Ettrich es beabsichtigt haben. Ein einfaches Beispiel dafür finden Sie hier: http://kde-apps.org/content/show.php/KEyes?content=51493 (Optional können Sie dies nur tun, wenn Sie feststellen, dass Sie unter Unity ausgeführt werden. dh wenn $ DESKTOP_SESSION auf 'ubuntu' gesetzt ist.)
Deklarieren Sie Unity als nicht unterstützt. Dies ist keine sehr gute Option.
Ob Sie sich für Option 1 oder 2 entscheiden möchten, hängt hauptsächlich davon ab, was Ihre Anwendung tut.
quelle