Cara menghubungkan tombol klik GTK3 acara ke callback

0

Jadi, saya sedang mengembangkan aplikasi pertama saya dengan GTK3 dan saya tidak tahu bagaimana menghubungkan tombol saya dengan def masing-masing. Adakah yang bisa memposting tutorial, contoh atau dokumen?

Menggunakan hal-hal selanjutnya untuk mengembangkan aplikasi saya:

  • Ubuntu 12,04 LTS benar-benar diperbarui
  • Python 2.7.3
  • Jelas, GTK + 3
  • Glade 3.12.1

Aplikasi yang saya kembangkan adalah Virtuam (kandidat di App Showdown!)

Xerz
sumber
Apakah Anda mencoba menautkan tombol ke acara callback?
Reuben Swartz

Jawaban:

6

Lihat contoh ini tentang cara menghubungkan acara ke panggilan balik dalam Gtk 3 dan Python . Singkatnya, Anda menggunakan connect()metode untuk menghubungkan nama sinyal (yang dipancarkan ketika suatu peristiwa seperti klik tombol terjadi) ke panggilan balik , yang merupakan fungsi yang akan menangani acara Anda.

def __init__(self):
    # Other initialization code

    # We create a button
    self.button = Gtk.Button(label="Click Here")
    # We connect the 'clicked' signal to the callback
    self.button.connect("clicked", self.on_button_clicked)

def on_button_clicked(self, widget):
    # This function will be called whenever the user presses the button
    print "Hello World"

Anda juga dapat menonton video Workshop Pengenalan Gtk3 yang merupakan bagian dari Showdown Aplikasi Ubuntu .

Jika Anda menggunakan Glade, Anda harus memastikan bahwa on_<name-of-your-button>_clicked()panggilan balik didefinisikan dalam kode sebagai metode jendela Anda.

Jika Anda menggunakan Cepat , hanya itu yang perlu Anda khawatirkan.

Jika tidak, Anda harus menghubungkan sinyal secara manual ke callback. Anda punya dua opsi:

  • Lakukan dalam kode dengan self.builder.get_object('name-of-your-button').connect()- dengan asumsi builderadalah nama Gtk.Builder()tempat Anda memuat UI Glade.
  • Lakukan dengan Glade melihat properti tombol Anda, memilih tab sinyal dan kemudian menulis nama panggilan balik Anda dalam sinyal 'diklik'.
David Planella
sumber
Gracias de nuevo, David ... pero igualmente, estoy usando Glade para crear la interfaz, así que no funciona.
Xerz
Jangan khawatir, ini harus bekerja sama dengan Glade. Saya telah menambahkan catatan tambahan tentang bagaimana melakukannya dengan Glade.
David Planella
Tapi saya sudah membuat tautan dengan kamus, alih-alih menggunakan itu ...
Xerz
Dan itu berhasil! Itu sebabnya saya mengetikkan judulnya (ditutup)
Xerz
Sekarang saya perlu bantuan untuk ini: askubuntu.com/questions/153788/how-can-i-set-a-spin-button
Xerz