PyGTK - Penanganan Acara
Selain mekanisme sinyal, peristiwa sistem jendela juga dapat dihubungkan ke fungsi callback. Mengubah ukuran jendela, menekan tombol, acara gulir, dll. Adalah beberapa kejadian sistem jendela yang umum. Peristiwa ini dilaporkan ke loop utama aplikasi. Dari sana, mereka diteruskan melalui sinyal ke fungsi callback.
Beberapa peristiwa sistem tercantum di bawah -
- button_press_event
- button_release_event
- scroll_event
- motion_notify_event
- delete_event
- destroy_event
- expose_event
- key_press_event
- key_release_event
Metode connect () digunakan untuk mengaitkan acara dengan fungsi callback mengikuti sintaks -
Object.connect(name, function, data)
Di sini, nama adalah singkatan dari string yang sesuai dengan nama acara yang akan ditangkap. Dan,function adalah nama dari callbackfungsi yang akan dipanggil ketika suatu peristiwa terjadi. Data adalah argumen untuk diteruskan ke fungsi callback.
Karenanya, kode berikut menghubungkan widget Tombol dan menangkap acara button_press -
self.btn.connect("button_press_event", self.hello)
Berikut ini akan menjadi Prototipe dari hello () fungsi -
def hello(self,widget,event):
Contoh
Berikut ini adalah kode untuk event handler tombol -
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Hello World in PyGTK")
self.set_default_size(400,300)
self.set_position(gtk.WIN_POS_CENTER)
self.label = gtk.Label("Enter name")
self.entry = gtk.Entry()
self.btn = gtk.Button("Say Hello")
self.btn.connect("button_press_event", self.hello)
fixed = gtk.Fixed()
fixed.put(self.label, 100,100)
fixed.put(self.entry, 100,125)
fixed.put(self.btn,100,150)
self.add(fixed)
self.show_all()
def hello(self,widget,event):
print "hello",self.entry.get_text()
PyApp()
gtk.main()
Ketika Anda menjalankan kode di atas, ini akan menampilkan output berikut di konsol -
Hello TutorialsPoint