آموزش کلاس EventBox در PyGTK
آموزش کلاس EventBox در PyGTK
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش کلاس EventBox در PyGTK خواهیم پرداخت.
پیشنهاد ویژه : پکیج آموزش صفر تا صد پایتون
برخی از ویجت های موجود در کیت ابزار PyGTK پنجره مخصوص به خود را ندارند. چنین ویجت های بدون پنجره نمی توانند سیگنال های رویداد را دریافت کنند. چنین ویجت هایی، برای مثال برچسب (لیبل)، اگر داخل یک جعبه رویداد قرار گیرند می توانند سیگنال دریافت کنند.
EventBox یک ظرف نامرئی است که پنجره ای را برای ویجت های بدون پنجره فراهم می کند. دارای یک سازنده ساده بدون هیچ گونه استدلال –
1 |
gtk.EventBox () |
مثال
در مثال زیر دو ویجت از gtk.EventBox در پنجره سطح بالا قرار داده شده است. داخل هر جعبه رویداد، یک برچسب اضافه می شود. در حال حاضر جعبه رویداد به یک تابع callback متصل است تا button_press_event روی آن پردازش شود. از آنجا که خود رویداد نامرئی است، به طور موثر رویداد روی برچسب تعبیه شده رخ می دهد. بنابراین، هنگامی که روی هر برچسبی کلیک می کنیم، تابع callback مربوطه فراخوانی می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("EventBox demo") self.set_size_request(200,100) self.set_position(gtk.WIN_POS_CENTER) fixed = gtk.Fixed() event1 = gtk.EventBox() label1 = gtk.Label("Label 1") event1.add(label1) fixed.put(event1, 80,20) event1.connect("button_press_event",self.hello1) event2 = gtk.EventBox() label2 = gtk.Label("Label 2") event2.add(label2) event2.connect("button_press_event",self.hello2) fixed.put(event2, 80,70) self.add(fixed) self.connect("destroy", gtk.main_quit) self.show_all() def hello1(self, widget, event): print "clicked label 1" def hello2(self, widget, event): print "clicked label 2" PyApp() gtk.main() |
کد بالا خروجی زیر را تولید می کند –
هنگامی که لیبل 1 روی کنسول کلیک می شود، پیام “clicked label 1” چاپ می شود. به طور مشابه، هنگامی که بر روی لیبل 2 کلیک می شود ، پیام “clicked label 2” چاپ می شود.
لیست جلسات قبل آموزش PyGTK
- آموزش PyGTK
- معرفی PyGTK
- آموزش محیط PyGTK
- آموزش Hello World در PyGTK
- آموزش کلاس های مهم در PyGTK
- آموزش کلاس پنجره در PyGTK
- آموزش کلاس دکمه در PyGTK
- آموزش کلاس لیبل در PyGTK
- آموزش کلاس ورود در PyGTK
- آموزش مدیریت سیگنال در PyGTK
- آموزش مدیریت رویداد در PyGTK
- آموزش کانتینر در PyGTK
- آموزش کلاس جعبه در PyGTK
- آموزش کلاس ButtonBox در PyGTK
- آموزش کلاس تراز در PyGTK
دیدگاه شما