آموزش کلاس 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 متن ردیف را بازیابی کرده و در پنل نمای متن نمایش داده می شود.
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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
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() |
کد بالا خروجی زیر را تولید می کند –
لیست جلسات قبل آموزش PyGTK
- آموزش PyGTK
- معرفی PyGTK
- آموزش محیط PyGTK
- آموزش Hello World در PyGTK
- آموزش کلاس های مهم در PyGTK
- آموزش کلاس پنجره در PyGTK
- آموزش کلاس دکمه در PyGTK
- آموزش کلاس لیبل در PyGTK
- آموزش کلاس ورود در PyGTK
- آموزش مدیریت سیگنال در PyGTK
- آموزش مدیریت رویداد در PyGTK
- آموزش کانتینر در PyGTK
- آموزش کلاس جعبه در PyGTK
- آموزش کلاس ButtonBox در PyGTK
- آموزش کلاس تراز در PyGTK
- آموزش کلاس EventBox در PyGTK
- آموزش کلاس Layout در PyGTK
- آموزش کلاس ComboBox در PyGTK
- آموزش کلاس ToggleButton در PyGTK
- آموزش کلاس CheckButton در PyGTK
- آموزش کلاس RadioButton در PyGTK
- آموزش MenuBar ،Menu و MenuItem در PyGTK
- آموزش کلاس نوار ابزار در PyGTK
- آموزش کلاس Adjustment در PyGTK
- موزش کلاس Range در PyGTK
- آموزش کلاس Scale در PyGTK
- آموزش کلاس Scrollbar در PyGTK
- آموزش کلاس Dialog در PyGTK
- آموزش کلاس MessageDialog در PyGTK
- آموزش کلاس AboutDialog در PyGTK
- آموزش کلاس FontSelection در PyGTK
- آموزش کلاس Color Selection در PyGTK
- آموزش دیالوگ انتخاب فایل در PyGTK
- آموزش کلاس نوت بوک در PyGTK
- آموزش کلاس فریم در PyGTK
- آموزش کلاس AspectFrame در PyGTK
- آموزش کلاس TreeView در PyGTK
دیدگاه شما