Saya membuat aplikasi untuk Showdown Aplikasi Ubuntu dengan Python + Gtk dengan cepat. Saya menyebutnya Discvur. Saya ingin memasukkan beberapa pintasan keyboard.
Mencari di web, saya menemukan halaman ini tentang AccelGroup dan halaman ini tentang gtk_widget_add_accelerator tapi saya tidak mengerti bagaimana memulainya. Bisakah Anda memberi tahu saya bagaimana saya akan menentukan sinyal yang sesuai dan kemudian menggunakannya dalam aplikasi saya?
Jawaban:
Berikut adalah beberapa bit kode dari salah satu aplikasi Python + Gtk saya, lebih lanjut diperpanjang sesuai dengan komentar untuk jawaban ini:
sumber
self.add_accelerator(self.quick_add_entry, "<Control>l", signal="grab-focus") AttributeError: 'DiscvurWindow' object has no attribute 'quick_add_entry'
. Ketika saya mencoba pencarian web "quick_add_entry", saya tidak dapat menemukannya di mana pun. Apakah Anda yakin itu adalah fungsi yang benar? Di mana saya dapat menemukan lebih banyak informasi / tutorial untuk ini? Selain itu, apakah "<Control> l" berarti Ctrl + l atau apakah ini salah ketik?Inilah kode yang akhirnya berhasil. Karena sangat tergantung pada lingkungan pengembangan saya Dengan cepat + Glade + Python + Gtk, saya membuatnya menjadi jawaban yang independen. Jawaban Bryce banyak membantu, dan begitu pula pertukaran saya dengan aking1012 .
Kode aktual, dalam editor teks:
Di Glade, saya membuat GtkEntry bernama "entry1" di jendela saya yang disebut "discvur_window". Pada tab 'Sinyal', saya memberi sinyal "backspace" penangan yang disebut "on_erasing".
Sekarang, menekan Backspaceatau Ctrl+ Bmembuat terminal cetak "Berhasil.".
sumber
Saya telah mengemas ulang jawaban yang diberikan di utas ini menjadi contoh mandiri:
Catatan: Sinyal default adalah
clicked
, bukanactivate
karena Aplikasi tidak boleh terhubung ke::activate
sinyal, tetapi gunakan::clicked
sinyal Gtk.Tombol .sumber
clicked
akselerator dapat dihaluskan dengan sangat cepat, tetapi tombol tidak secara visual menekan. Saat menggunakanactivate
, tombol akan tertekan, tetapi akselerator hanya dapat ditekan setelah tekanan visual selesai.