Próbuję opracować jakiś program w QT z QT SDK. Wczoraj czytałem o API Unity Launcher na oficjalnej stronie Ubuntu. Ale jest tylko przykład dla Vala i Pythona. Można używać interfejsu API Unity Launcher (szybkie listy, liczniki i paski postępu) z językiem C ++, a jeśli to możliwe, proszę podać przykład.
application-development
qt
c++
unity
kv1dr
źródło
źródło
Odpowiedzi:
Uczę się również Qt i próbowałem znaleźć sposób na użycie Unity API w Qt, mogłem używać tylko Dbus API, ale nie mam szczęścia z Quicklist, ponieważ potrzebuje DbusMenu i nie wiem, jak to zaimplementować (wciąż się uczę :) ).
To przykład, który stworzyłem dla siebie i mam nadzieję, że będzie użyteczny dla innych. Może deweloperzy Unity mogą pomóc w poprawieniu / naprawieniu / dodaniu do niego nowego kodu (szybkiej listy) :)
pobierz przykład tutaj http://ubuntuone.com/1SLDPcN9OhrU6LD1wgDs3r
źródło
QT += dbus
)/usr/include/unity/unity/unity.h:7: error: glib.h: No such file or directory
), ale mamlibglib2.0-dev
zainstalowany.Obecnie nie ma określonej biblioteki umożliwiającej dostęp do funkcji uruchamiania z Qt C ++. Istnieje biblioteka lib libibility, ale jest zorientowana na glib, więc nie jest odpowiednia dla Qt. Jak wspomniano w drugiej odpowiedzi, najwygodniejszym sposobem integracji z programem uruchamiającym jest użycie niskopoziomowego interfejsu API dbus .
Podstawowa koncepcja integracji z programem uruchamiającym polega na wysłaniu sygnału do programu uruchamiającego z identyfikatorem aplikacji i zestawem właściwości. Identyfikator aplikacji to nazwa pliku .desktop, zwykle przechowywanego w
/usr/share/applications
:Licznik
Aby ustawić licznik, musisz ustawić właściwości tak, aby liczba była widoczna i nadać jej pożądaną wartość całkowitą:
Pasek postępu
Aby ustawić pasek postępu, musisz ustawić właściwości tak, aby postęp był widoczny i nadać mu pożądaną podwójną wartość:
Szybka lista
Skróconą listę można ustawić za pomocą biblioteki dbusmenu Qt. Musisz dołączyć plik nagłówka:
Szybka lista jest tworzona jako
QMenu
menu w Qt. To menu jest „eksportowane” przez dbusmenu za pomocąDBusMenuExporter
obiektu. Podczas eksportowania nadajesz temu obiektowi unikalną ścieżkę, a następnie odwołujesz się do tej ścieżki, aby powiedzieć elementowi uruchamiającemu, które menu wyświetlić jako szybką listę.W deklaracji klasy okna głównego dodaj następujące zmienne instancji:
Następnie w funkcji konstruktora:
Aby dodać elementy do menu, użyj metody [addAction] (http: //qt-project.org/doc/qt-5.0/qtwidgets/qmenu.html#addAction) menu, aby dodać [QAction] (http: / /qt-project.org/doc/qt-5.0/qtwidgets/qaction.html) obiekty.
Aby ustawić szybką listę ikony programu uruchamiającego, ustaw właściwość sygnału „szybka lista”:
Konfigurowanie pliku projektu
Trzeba skonfigurować plik .pro dodać dbus wsparcia:
QT += dbus
. Aby budować z obsługą szybkiej listy, musisz miećlibdbusmenu*dev
zainstalowane biblioteki programistyczne dbusmenu-qt ( ). Następnie możesz dodać do pliku projektu następujące elementy, aby uwzględnić bibliotekę dbusmenu:Przykład zastosowania
Aby zobaczyć pełny przykład z wykorzystaniem wszystkich funkcji uruchamiania z Qt, spójrz na ten projekt Github .
źródło