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

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

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

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

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

کلاس Paned کلاس اصلی ویجت ها است که می تواند دو پنجره قابل تنظیم را به صورت افقی (gtk.Hpaned) یا عمودی (gtk.Vpaned) نمایش دهد. ویجت های کودک به پنجره ها با استفاده از روش های ()pack1  و ()pack2 اضافه می شوند.

ویجت Paned یک کشویی جدا کننده بین دو پنجره ترسیم می کند و دسته ای برای تنظیم عرض/ارتفاع نسبی آنها فراهم می کند. اگر ویژگی تغییر اندازه ویجت کودک درون یک پنجره روی True تنظیم شود ، با توجه به اندازه پنجره ها تغییر اندازه می دهد.

روشهای زیر برای کلاس HPaned و VPaned موجود است –

  • Paned.add1 (کودک) – این ویجت مشخص شده توسط کودک را به پنجره بالا یا چپ اضافه می کند
  • Paned.add2 (کودک) – این ویجت مشخص شده توسط کودک را به پنجره پایین یا راست اضافه می کند.
  • Paned.pack1 (کودک، تغییر اندازه، کوچک شدن) – این ویجت مشخص شده توسط کودک را به پارامترهای بالا یا چپ اضافه می کند. اگر تغییر اندازه درست است، وقتی اندازه ویجت پنجره تغییر کرد ، کودک باید تغییر اندازه دهد. اگر shrink True باشد، می توان کودک را از اندازه حداقل اندازه کوچک تر کرد.
  • Paned.pack2 (کودک، تغییر اندازه، کوچک شدن) – این موقعیت تقسیم کننده بین دو پنجره را تنظیم می کند.

هر دو نوع ویجت های Paned سیگنال های زیر را منتشر می کنند –

accept-position این حالت زمانی منتشر می شود که paned دارای تمرکز بوده و باعث می شود ویجت کودک با فوکوس فعال شود.
cancel-position  این حالت زمانی که کلید Esc فشار داده شود در حالی که paned دارای فوکوس است ، منتشر می شود.
move-handle هنگامی که paned فوکوس داشته باشد و جداکننده حرکت کند، منتشر می شود.

مثال

مثال زیر از ویجت gtk.Hpaned استفاده می کند. در پنجره سمت چپ، یک ویجت TreeView و در قسمت راست ، یک ویجت TextView وجود دارد. هنگامی که هر سطر در TreeView انتخاب شود ، سیگنال row_activated را که به یک تابع callback متصل است، منتشر می کند. تابع ()on_activated متن ردیف را بازیابی کرده و در پنل نمای متن نمایش داده می شود.

import gtk, gobject

class PyApp(gtk.Window):
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("HPaned widget Demo")
      self.set_default_size(250, 200)
      vp = gtk.HPaned()
      sw = gtk.ScrolledWindow()
      sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 
        
      tree = gtk.TreeView()
      languages = gtk.TreeViewColumn()
      languages.set_title("GUI Toolkits")
      cell = gtk.CellRendererText()
      languages.pack_start(cell, True)
      languages.add_attribute(cell, "text", 0)
      treestore = gtk.TreeStore(str)
      it = treestore.append(None, ["Python"])
        
      treestore.append(it, ["PyQt"])
      treestore.append(it, ["wxPython"])
      treestore.append(it, ["PyGTK"])
      treestore.append(it, ["Pydide"])
        
      it = treestore.append(None, ["Java"])
      treestore.append(it, ["AWT"])
      treestore.append(it, ["Swing"])
      treestore.append(it, ["JSF"])
      treestore.append(it, ["SWT"])
        
      tree.append_column(languages)
      tree.set_model(treestore)
        
      vp.add1(tree)
      self.tv = gtk.TextView()
      vp.add2(self.tv)
      vp.set_position(100)
      self.add(vp)
        
      tree.connect("row-activated", self.on_activated)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
        
   def on_activated(self, widget, row, col):
      model = widget.get_model()
      text = model[row][0]
      print text
        
      buffer = gtk.TextBuffer()
      buffer.set_text(text+" is selected")
      self.tv.set_buffer(buffer)

if __name__ == '__main__':
   PyApp()
   gtk.main()

 

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

 

Hpaned Widget 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
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه