Saat ini tidak ada perpustakaan khusus untuk mengakses fungsionalitas peluncur dari Qt C ++. Ada perpustakaan libunity tetapi ini sangat berorientasi pada glib sehingga relatif tidak cocok untuk Qt. Seperti disebutkan dalam jawaban lain, cara paling nyaman untuk berintegrasi dengan peluncur adalah dengan menggunakan API dbus tingkat rendah .
Konsep dasar bagaimana mengintegrasikan dengan peluncur adalah Anda mengirim sinyal ke peluncur dengan ID aplikasi dan serangkaian properti. ID aplikasi adalah nama file dari file .desktop, biasanya disimpan di /usr/share/applications
:
//create the signal
QDBusMessage signal = QDBusMessage::createSignal("/",
"com.canonical.Unity.LauncherEntry", "Update");
//set the application ID
signal << "application://firefox.desktop";
//set the properties
QVariantMap properties;
...
signal << properties;
//send the signal
QDBusConnection::sessionBus().send(signal);
Melawan
Untuk mengatur penghitung, Anda perlu mengatur properti sedemikian sehingga penghitungan terlihat dan memberikan nilai integer yang diinginkan:
qint64 counter_value = 1;
properties["count-visible"] = true; //set the count to visible
properties["count"] = counter_value; //set the counter value
Bar Kemajuan
Untuk mengatur bilah kemajuan, Anda harus mengatur properti sedemikian sehingga kemajuan terlihat dan memberikan nilai ganda yang diinginkan:
double progress_value = 0.5;
properties["progress-visible"] = true; //set the progress bar to visible
properties["progress"] = progress_value; //set the progress value
Daftar cepat
Daftar cepat dapat diatur dengan menggunakan pustaka Qbus dbusmenu. Anda harus memasukkan file header:
#include <dbusmenuexporter.h>
Daftar cepat dibuat sebagai QMenu
menu di Qt. Menu ini 'diekspor' melalui dbusmenu menggunakan DBusMenuExporter
objek. Saat mengekspor, Anda memberikan objek ini jalur unik dan kemudian referensi jalur itu untuk memberi tahu item peluncur menu mana yang akan ditampilkan sebagai daftar cepat.
Dalam deklarasi kelas jendela utama Anda, tambahkan variabel instance berikut:
QMenu *quicklist;
DBusMenuExporter *quicklist_exporter;
Kemudian, dalam fungsi konstruktor:
quicklist = new QMenu(this);
//exports the menu over dbus using the object: /com/me/myapp/quicklist
quicklist_exporter = new DBusMenuExporter("/com/me/myapp/quicklist", quicklist);
Untuk menambahkan item ke menu, gunakan metode [addAction] (http: //qt-project.org/doc/qt-5.0/qtwidgets/qmenu.html#addAction) dari menu untuk menambahkan [QAction] (http: / /qt-project.org/doc/qt-5.0/qtwidgets/qaction.html) objek.
Untuk mengatur daftar cepat ikon peluncur, setel properti 'daftar cepat' dari sinyal:
properties["quicklist"] = "/com/me/myapp/quicklist";
Mengkonfigurasi File Proyek
Anda akan perlu untuk mengkonfigurasi file pro untuk menambahkan dukungan dbus: QT += dbus
. Untuk membangun dengan dukungan daftar cepat, Anda perlu libdbusmenu*dev
menginstal pustaka pengembangan dbusmenu-qt ( ). Anda kemudian dapat menambahkan yang berikut ke file proyek untuk memasukkan pustaka dbusmenu:
#import the dbusmenu-qt library for quicklists
greaterThan(QT_MAJOR_VERSION, 4) {
INCLUDEPATH += /usr/include/dbusmenu-qt5/
LIBS += -ldbusmenu-qt5
} else {
INCLUDEPATH += /usr/include/dbusmenu-qt/
LIBS += -ldbusmenu-qt
}
Contoh Aplikasi
Untuk melihat contoh lengkap menggunakan semua fungsi peluncur dari Qt, lihat proyek Github ini .