Lassen Sie sniqt alle Tray-Fähigkeiten erkennen (oder erstellen Sie einen funktionierenden Indikator in Qt).


9

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


Ist das nicht normal für alle Indikatoren? Sie akzeptieren nur Ereignisse mit Linksklick und Bildlauf.
Timo

Nee! Wenn Sie z. B. mit der mittleren Maustaste auf das Sound-Symbol klicken, wird der Sound stummgeschaltet / die Stummschaltung aufgehoben. In meiner Bewerbung möchte ich sie beenden.
Hytromo

@mateo_salta, bitte vergleichen Sie es mit askubuntu.com/questions/158323/…
Hytromo

Antworten:


0

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.


1
Entschuldigung, aber Qt hat diese Funktionalität tatsächlich in seinen Tray-Symbolen. Die Aktion meines Tabletts funktioniert in anderen Systemen einwandfrei. Es ist Ubuntus Problem und seine Sturheit mit den Indikatoren. Sniqt ist möglicherweise in der Lage, das Problem zu lösen
Hytromo

2
Ich kann bestätigen, dass dies nicht Qts Schuld ist. Ich bezweifle auch, dass das Problem bei liegt 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.
Nathan Osman

1

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.