Ada utas lama saya ini: Bagaimana cara membuat indikator bekerja dengan Qt / C ++? di mana saya disarankan untuk menggunakan perpustakaan QSystemTray untuk membuat ikon baki di Ubuntu untuk aplikasi saya.
Sniqt adalah program yang menangani sisanya. Seperti diketahui, Ubuntu telah menyingkirkan ikon baki. Sebaliknya, sekarang menggunakan indikator dan hanya indikator. Sniqt mengubah ikon baki Qt menjadi indikator yang berfungsi.
Masalahnya adalah itu tidak melakukan konversi yang sangat baik. Tindakan seperti klik tunggal, klik tengah dll tidak berfungsi, sementara itu dilakukan dalam sistem yang mendukung ikon baki.
Apakah ada cara untuk mengembalikan tindakan ini? Bisakah saya menggunakan ikon QSystemTray dan masih memiliki tindakan yang menarik (dan sangat membantu, pada kesempatan saya) di Ubuntu?
Saya akan senang mengetahui jawaban untuk utas lain yang saya bicarakan sebelumnya (bagaimana membuat indikator bekerja menggunakan perpustakaan GTK dan mencegah crash), juga.
Tautan untuk bug Sniqt: https://bugs.launchpad.net/sni-qt/+bug/1027652
Jawaban:
Tampaknya Qt tidak mendukung hal ini, setidaknya di Ubuntu Unity, bahkan jika ia memiliki sinyal 'diaktifkan'. Jadi saya akan merekomendasikan Anda untuk menggunakan GTK dan trayicon normal, saya tidak melihat alternatif dengan Qt. Anda dapat menghubungi pengembang Qt untuk klarifikasi tentang ini.
sumber
sniqt
. Saya tidak mengetahui bahwa indikator aplikasi bahkan memiliki kemampuan untuk membedakan antara klik kiri dan kanan. Ini juga menjadi sumber frustrasi bagi saya.Unity, dengan pilihan, tidak mendukung apa yang Anda sebut sebagai "ikon baki yang layak". Ini indikator atau tidak sama sekali. Dari sana Anda memiliki beberapa opsi:
Lakukan dengan kemampuan indikator terbatas. Anda dapat mengatur menu yang akan digunakan oleh indikator Anda dengan metode QSystemTray.setContextMenu () standar.
Lepaskan aplikasi Anda sepenuhnya dari systray. Seperti pada, ubah menjadi ikon mengambang di desktop, yang akan dapat menerima klik tengah dan kanan seperti yang Tuhan dan Matthias Ettrich maksudkan. Anda dapat menemukan contoh sederhana tentang bagaimana melakukan ini di sini: http://kde-apps.org/content/show.php/KEyes?content=51493 (Secara opsional, lakukan ini hanya ketika Anda mendeteksi bahwa Anda menjalankan di bawah Unity, yaitu jika $ DESKTOP_SESSION disetel ke 'ubuntu'.)
Deklarasikan Persatuan tidak didukung. Ini bukan pilihan yang sangat bagus.
Apakah Anda ingin menggunakan opsi 1 atau 2 tergantung pada apa yang dilakukan aplikasi Anda.
sumber