آموزش کلاس نوار وضعیت در PyGTK

3 سال پیش

 آموزش کلاس نوار وضعیت در PyGTK

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

پیشنهاد ویژه : آموزش طراحی وب سایت با پایتون

یک منطقه اعلان ها یا نوتیفیکیشن ها، معمولاً در پایین پنجره، نوار وضعیت یا Status bar نامیده می شود. هر نوع پیام تغییر وضعیت را می توان در نوار وضعیت نمایش داد. همچنین دارای یک دستگیره است که می توان اندازه آن را تغییر داد.

ویجت gtk.Statusbar مجموعه ای از پیام ها را حفظ می کند. بنابراین ، پیام جدید در بالای پیام فعلی نمایش داده می شود. اگر باز شود، پیام قبلی دوباره قابل مشاهده خواهد بود. منبع پیام باید با شناسه context_id مشخص شود تا بتوان آن را منحصر به فرد تشخیص داد.

در زیر سازنده ویجت gtk.Statusbar است –

bar = gtk.Statusbar()

 

در زیر روش های کلاس gtk.Statusbar آمده است –

  • Statusbar.push (context_id، text) – این یک پیام جدید را به پشته نوار وضعیت منتقل می کند.
  • Statusbar.pop (context_id) – این پیام بالا را با context_id مشخص شده از پشته نوار وضعیت حذف می کند.

سیگنال های زیر توسط ویجت Statusbar منتشر می شوند –

text-popped هنگامی که پیامی از پشته پیام نوار وضعیت حذف می شود، منتشر می شود.
text-pushed هنگامی که پیامی به پشته پیام statusbar اضافه می شود ، منتشر می شود.

مثال زیر عملکرد Statusbar را نشان می دهد. پنجره Toplevel شامل یک VBox با دو ردیف است. سطر بالا دارای یک ویجت ثابت است که در آن یک برچسب، یک ویجت ورود و یک دکمه قرار داده شده است. در حالی که، در ردیف پایین، یک ویجت gtk.Statusbar اضافه شده است.

برای ارسال پیام به نوار وضعیت ، باید context_id آن را واکشی کنید.

id1 = self.bar.get_context_id("Statusbar")

 

سیگنال “clicked” شیء Button به یک تابع callback متصل می شود که از طریق آن یک پیام در نوار وضعیت رانده می شود. و هنگامی که کلید Enter را در ویجت Entry فشار می دهید، سیگنال “activate” منتشر می شود. این ویجت به تماس تلفنی دیگری متصل شده است.

btn.connect("clicked", self.on_clicked, id1)
txt.connect("activate", self.on_entered, id1)

 

هر دو فراخوان از روش ()push  برای چشمک زدن پیام در منطقه اعلان استفاده می کنند.

مثال

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Statusbar demo")
      self.set_size_request(400,200)
      self.set_position(gtk.WIN_POS_CENTER)
        
      vbox = gtk.VBox()
      fix = gtk.Fixed()
      lbl = gtk.Label("Enter name")
        
      fix.put(lbl, 175, 50)
      txt = gtk.Entry()
      fix.put(txt, 150, 100)
        
      btn = gtk.Button("ok")
      fix.put(btn, 200,150)
        
      vbox.add(fix)
      self.bar = gtk.Statusbar()
      vbox.pack_start(self.bar, True, False, 0)
        
      id1 = self.bar.get_context_id("Statusbar")
      btn.connect("clicked", self.on_clicked, id1)
      txt.connect("activate", self.on_entered, id1)
        
      self.add(vbox)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
        
      def on_clicked(self, widget, data=None):
         self.bar.push(data, "Button clicked
        
      def on_entered(self, widget, data):
         self.bar.push(data, "text entered")

PyApp()
gtk.main()

 

پس از اجرا، کد فوق خروجی زیر را نمایش می دهد –

Statusbar Demo

 

منبع.

 

 

لیست جلسات قبل آموزش 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
  16. آموزش کلاس EventBox در PyGTK
  17. آموزش کلاس Layout در PyGTK
  18. آموزش کلاس ComboBox در PyGTK
  19. آموزش کلاس ToggleButton در PyGTK
  20. آموزش کلاس CheckButton در PyGTK
  21. آموزش کلاس RadioButton در PyGTK
  22. آموزش MenuBar ،Menu و MenuItem در PyGTK
  23. آموزش کلاس نوار ابزار در PyGTK
  24. آموزش کلاس Adjustment در PyGTK
  25. موزش کلاس Range در PyGTK
  26. آموزش کلاس Scale در PyGTK
  27. آموزش کلاس Scrollbar در PyGTK
  28. آموزش کلاس Dialog در PyGTK
  29. آموزش کلاس MessageDialog در PyGTK
  30. آموزش کلاس AboutDialog در PyGTK
  31. آموزش کلاس FontSelection در PyGTK
  32. آموزش کلاس Color Selection در PyGTK
  33. آموزش دیالوگ انتخاب فایل در PyGTK
  34. آموزش کلاس نوت بوک در PyGTK
  35. آموزش کلاس فریم در PyGTK
  36. آموزش کلاس AspectFrame در PyGTK
  37. آموزش کلاس TreeView در PyGTK
  38. آموزش کلاس Paned در PyGTK
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه