Saya mencoba mengembangkan beberapa program di QT dengan QT SDK. Kemarin saya membaca tentang Unity Launcher API di situs web ubuntu resmi. Tetapi ada contoh hanya untuk Vala dan python. Dimungkinkan untuk menggunakan Unity Launcher API (daftar cepat, penghitung, dan bilah kemajuan) dengan bahasa C ++ dan jika memungkinkan, silakan kirim contoh.
application-development
qt
c++
unity
kv1dr
sumber
sumber
Jawaban:
Saya juga belajar Qt dan mencoba menemukan cara untuk menggunakan Unity API di Qt, saya hanya bisa menggunakan Dbus API, tetapi tidak berhasil dengan Quicklist karena membutuhkan DbusMenu dan saya tidak tahu bagaimana mengimplementasikannya (masih belajar :) ).
Ini adalah contoh yang saya buat untuk diri saya dan saya harap ini berguna untuk orang lain. Mungkin Unity devs dapat membantu memperbaiki / memperbaiki / menambah kode baru (daftar cepat) ke sana :)
unduh contoh di sini http://ubuntuone.com/1SLDPcN9OhrU6LD1wgDs3r
sumber
QT += dbus
/usr/include/unity/unity/unity.h:7: error: glib.h: No such file or directory
), tetapi saya telahlibglib2.0-dev
menginstal.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
:Melawan
Untuk mengatur penghitung, Anda perlu mengatur properti sedemikian sehingga penghitungan terlihat dan memberikan nilai integer yang diinginkan:
Bar Kemajuan
Untuk mengatur bilah kemajuan, Anda harus mengatur properti sedemikian sehingga kemajuan terlihat dan memberikan nilai ganda yang diinginkan:
Daftar cepat
Daftar cepat dapat diatur dengan menggunakan pustaka Qbus dbusmenu. Anda harus memasukkan file header:
Daftar cepat dibuat sebagai
QMenu
menu di Qt. Menu ini 'diekspor' melalui dbusmenu menggunakanDBusMenuExporter
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:
Kemudian, dalam fungsi konstruktor:
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:
Mengkonfigurasi File Proyek
Anda akan perlu untuk mengkonfigurasi file pro untuk menambahkan dukungan dbus:
QT += dbus
. Untuk membangun dengan dukungan daftar cepat, Anda perlulibdbusmenu*dev
menginstal pustaka pengembangan dbusmenu-qt ( ). Anda kemudian dapat menambahkan yang berikut ke file proyek untuk memasukkan pustaka dbusmenu:Contoh Aplikasi
Untuk melihat contoh lengkap menggunakan semua fungsi peluncur dari Qt, lihat proyek Github ini .
sumber