PyGTK - Xử lý sự kiện
Ngoài cơ chế tín hiệu, các sự kiện hệ thống cửa sổ cũng có thể được kết nối với các chức năng gọi lại. Thay đổi kích thước cửa sổ, nhấn phím, sự kiện cuộn, v.v. là một số sự kiện hệ thống cửa sổ phổ biến. Các sự kiện này được báo cáo đến vòng lặp chính của ứng dụng. Từ đó, chúng được truyền qua các tín hiệu đến các hàm gọi lại.
Một số sự kiện hệ thống được liệt kê dưới đây:
- button_press_event
- button_release_event
- scroll_event
- motion_notify_event
- delete_event
- destroy_event
- expose_event
- key_press_event
- key_release_event
Phương thức connect () được sử dụng để liên kết sự kiện với hàm gọi lại theo cú pháp:
Object.connect(name, function, data)
Ở đây, name là viết tắt của chuỗi tương ứng với tên của sự kiện sẽ được nắm bắt. Và,function là tên của callbackhàm sẽ được gọi khi một sự kiện xảy ra. Dữ liệu là đối số được truyền cho hàm gọi lại.
Do đó, đoạn mã sau kết nối tiện ích Nút và ghi lại sự kiện button_press -
self.btn.connect("button_press_event", self.hello)
Sau đây sẽ là Nguyên mẫu của hàm hello () -
def hello(self,widget,event):
Thí dụ
Sau đây là mã cho trình xử lý sự kiện nút:
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()
Khi bạn chạy đoạn mã trên, nó sẽ hiển thị kết quả sau trên bảng điều khiển:
Hello TutorialsPoint