Jest mój stary wątek: jak utworzyć działający wskaźnik za pomocą Qt / C ++? gdzie zasugerowano mi użycie biblioteki QSystemTray do utworzenia ikony tacy w Ubuntu dla mojej aplikacji.
Sniqt to program, który dba o resztę. Jak wiadomo, Ubuntu pozbyło się ikon w zasobniku. Zamiast tego używa teraz wskaźników i tylko wskaźników. Sniqt przekształca ikony zasobnika Qt w działające wskaźniki.
Problem polega na tym, że nie wykonuje bardzo przyzwoitej konwersji. Działania takie jak pojedyncze kliknięcie, środkowe kliknięcie itp. Nie działają, podczas gdy działają w systemach obsługujących ikony na pasku zadań.
Czy istnieje sposób na odzyskanie tych działań? Czy mogę używać ikony QSystemTray i nadal mieć te interesujące (i bardzo pomocne, przy okazji) akcje w Ubuntu?
Z przyjemnością znałbym odpowiedź na inny wątek, o którym mówiłem wcześniej (jak zrobić działający wskaźnik za pomocą bibliotek GTK i zapobiec awarii).
Link do błędu Sniqt: https://bugs.launchpad.net/sni-qt/+bug/1027652
Odpowiedzi:
Wydaje się, że Qt nie obsługuje tej rzeczy, przynajmniej w Ubuntu Unity, nawet jeśli ma „aktywowany” sygnał. Polecam więc korzystanie z GTK i zwykłego trayicon, nie widzę alternatywy dla Qt. Możesz skontaktować się z twórcami Qt w celu wyjaśnienia tego.
źródło
sniqt
. Nie wiem, czy wskaźniki aplikacji potrafią nawet rozróżniać kliknięcia lewym i prawym. To również było dla mnie stałym źródłem frustracji.Jedność z wyboru nie obsługuje tego, co nazywacie „przyzwoitymi ikonami zasobnika”. To wskaźniki lub nic. Stamtąd masz kilka opcji:
Zadbaj o ograniczone możliwości wskaźnika. Możesz ustawić menu, które będzie używane przez wskaźnik za pomocą standardowej metody QSystemTray.setContextMenu ().
Odłącz całkowicie aplikację od paska zadań. Z kolei zamień go w pływającą ikonę na pulpicie, która będzie mogła akceptować kliknięcia środkowym i prawym przyciskiem myszy, zgodnie z zamierzeniami Boga i Matthiasa Ettricha. Prosty przykład tego można znaleźć tutaj: http://kde-apps.org/content/show.php/KEyes?content=51493 (Opcjonalnie, zrób to tylko wtedy, gdy wykryjesz, że działasz pod Unity, tzn. jeśli $ DESKTOP_SESSION jest ustawiony na „ubuntu”).
Zadeklaruj Unity nieobsługiwane. To nie jest bardzo dobra opcja.
To, czy będziesz chciał skorzystać z opcji 1 czy 2, zależy głównie od tego, co robi twoja aplikacja.
źródło