آموزش کلاس EventBox در PyGTK

3 سال پیش
آموزش کلاس EventBox در PyGTK

آموزش کلاس EventBox در PyGTK

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش کلاس EventBox در PyGTK خواهیم پرداخت.

پیشنهاد ویژه : پکیج آموزش صفر تا صد پایتون

برخی از ویجت های موجود در کیت ابزار PyGTK پنجره مخصوص به خود را ندارند. چنین ویجت های بدون پنجره نمی توانند سیگنال های رویداد را دریافت کنند. چنین ویجت هایی، برای مثال برچسب (لیبل)، اگر داخل یک جعبه رویداد قرار گیرند می توانند سیگنال دریافت کنند.

EventBox یک ظرف نامرئی است که پنجره ای را برای ویجت های بدون پنجره فراهم می کند. دارای یک سازنده ساده بدون هیچ گونه استدلال –

gtk.EventBox ()

 

مثال

در مثال زیر دو ویجت از gtk.EventBox در پنجره سطح بالا قرار داده شده است. داخل هر جعبه رویداد، یک برچسب اضافه می شود. در حال حاضر جعبه رویداد به یک تابع callback متصل است تا button_press_event روی آن پردازش شود. از آنجا که خود رویداد نامرئی است، به طور موثر رویداد روی برچسب تعبیه شده رخ می دهد. بنابراین، هنگامی که روی هر برچسبی کلیک می کنیم، تابع callback مربوطه فراخوانی می شود.

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()

 

کد بالا خروجی زیر را تولید می کند –

EventBox Demo

 

هنگامی که لیبل ۱ روی کنسول کلیک می شود، پیام “clicked label 1” چاپ می شود. به طور مشابه، هنگامی که بر روی لیبل ۲ کلیک می شود ، پیام “clicked label 2” چاپ می شود.

 

منبع.

 

لیست جلسات قبل آموزش PyGTK

  1. آموزش PyGTK
  2. معرفی PyGTK
  3. آموزش محیط  PyGTK
  4. آموزش Hello World در  PyGTK
  5. آموزش کلاس های مهم در  PyGTK
  6. آموزش کلاس پنجره در PyGTK
  7. آموزش کلاس دکمه در PyGTK
  8. آموزش کلاس لیبل در PyGTK
  9. آموزش کلاس ورود در PyGTK
  10. آموزش مدیریت سیگنال در PyGTK
  11. آموزش مدیریت رویداد در PyGTK
  12. آموزش کانتینر در PyGTK
  13. آموزش کلاس جعبه در PyGTK
  14. آموزش کلاس ButtonBox در PyGTK
  15. آموزش کلاس تراز در PyGTK
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه