آموزش کلاس ComboBox در PyGTK
آموزش کلاس ComboBox در PyGTK
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش کلاس ComboBox در PyGTK خواهیم پرداخت.
پیشنهاد ویژه : آموزش طراحی وب سایت با پایتون
ComboBox یک ویجت قدرتمند و محبوب در هر جعبه ابزار GUI است. این یک لیست کشویی از مواردی را که کاربر می تواند از بین آنها انتخاب کند، ارائه می دهد. ویجت gtk.ComboBox رابط CellLayout را پیاده سازی کرده و روشهای مختلفی را برای مدیریت نمایش موارد ارائه می دهد.
هدف کلاس gtk.ComboBox با ListSore همراه است، که یک مدل لیست است که می تواند با ابزارک هایی که مجموعه ای از اقلام را نمایش می دهند استفاده شود. موارد با روش ()append به ListStore اضافه می شوند. علاوه بر این، یک شی CellRendererText ایجاد شده و در جعبه combobox بسته بندی می شود.
برای راه اندازی combobox این مراحل را دنبال کنید.
1 2 3 4 5 |
combobox = gtk.ComboBox() store = gtk.ListStore(gobject.TYPE_STRING) cell = gtk.CellRendererText() combobox.pack_start(cell) combobox.add_attribute(cell, 'text', 0) |
PyGTK روش راحتی را ارائه می دهد – ()gtk.combo_box_new_text برای ایجاد یک جعبه ترکیبی به جای استفاده از فروشگاه فهرست. روشهای سهولت مرتبط ()append_text() ، prepend_text() ، insert_text و ()remove_text برای مدیریت محتوای ترکیبی جعبه استفاده می شود.
کلاس gtk.ComboBox روشهای زیر را دارد –
S.NO | Methods and Description |
---|---|
1 | ()set_wrap_width
تعداد ستون هایی را که در چیدمان جدول پنجره نمایش داده می شود، تنظیم می کند |
2 | ()get_active
مقدار ویژگی “active” را که در مدل آیتم فعلی فعال است نشان می دهد |
3 | ()set_active
مورد فعال combo_box را به موردی با شاخص مدل مشخص شده تنظیم می کند |
4 | ()set_model
مدل مورد استفاده در جعبه ترکیبی را تنظیم می کند |
5 | ()append_text
رشته مشخص شده توسط متن را به لیست رشته های ذخیره شده در فروشگاه فهرست ترکیبی جعبه اضافه می کند |
6 | ()Insert_text
رشته مشخص شده توسط متن را در جعبه ترکیبی gtk.ListStore در نمایه مشخص شده توسط موقعیت قرار می دهد |
7 | ()prepend_text
رشته مشخص شده توسط متن را به لیست رشته های ذخیره شده در فروشگاه فهرست اضافه می کند |
8 | ()remove_text
رشته را در فهرست مشخص شده توسط موقعیت در فروشگاه فهرست مرتبط حذف می کند |
9 | ()get_active_text
رشته فعلی را برمی گرداند |
ویجت ComboBox سیگنال های زیر را منتشر می کند –
changed | وقتی یک مورد جدید در جعبه ترکیبی انتخاب می شود ، منتشر می شود |
move_active | این یک سیگنال اتصال دهنده کلید است که برای حرکت انتخاب فعال منتشر می شود. |
Popdown | این یک سیگنال اتصال دهنده کلید است که برای باز شدن لیست ترکیبی جعبه منتشر می شود. پیوندهای پیش فرض برای این سیگنال Alt+Up و Escape هستند |
Popup | یک سیگنال اتصال دهنده کلید است که در پنجره ترکیبی جعبه ترکیبی منتشر می شود. اتصالهای پیش فرض برای این سیگنال Alt+Down هستند. |
دو کد نمونه برای نمایش ComboBox در زیر آورده شده است.
مثال 1
در این مثال ListStore با نام جعبه ابزارهای رایج Python GUI و با ویجت ComboBox مرتبط است. با انتخاب کاربر، سیگنال تغییر یافته منتشر می شود. برای نمایش انتخاب کاربر ، به یک تابع 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 36 37 38 39 40 41 42 43 44 45 |
import pygtk pygtk.require('2.0') import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("ComboBox with ListStore") self.set_default_size(250, 200) self.set_position(gtk.WIN_POS_CENTER) combobox = gtk.ComboBox() store = gtk.ListStore(str) cell = gtk.CellRendererText() combobox.pack_start(cell) combobox.add_attribute(cell, 'text', 0) fixed = gtk.Fixed() lbl = gtk.Label("select a GUI toolkit") fixed.put(lbl, 25,75) fixed.put(combobox, 125,75) lbl2 = gtk.Label("Your choice is:") fixed.put(lbl2, 25,125) self.label = gtk.Label("") fixed.put(self.label, 125,125) self.add(fixed) store.append (["PyQt"]) store.append (["Tkinter"]) store.append (["WxPython"]) store.append (["PyGTK"]) store.append (["PySide"]) combobox.set_model(store) combobox.connect('changed', self.on_changed) combobox.set_active(0) self.connect("destroy", gtk.main_quit) self.show_all() return def on_changed(self, widget): self.label.set_label(widget.get_active_text()) return if __name__ == '__main__': PyApp() gtk.main() |
مثال 2
نسخه دوم برنامه از روش راحتی ()combo_box_new_text برای ایجاد یک جعبه ترکیبی و تابع ()append_text برای افزودن رشته ها در آن استفاده می کند. در هر دو برنامه ، از روش ()get_active_text برای انتخاب کاربر و نمایش برچسب روی پنجره استفاده می شود.
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 |
import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Simple ComboBox") self.set_default_size(250, 200) self.set_position(gtk.WIN_POS_CENTER) cb = gtk.combo_box_new_text() cb.connect("changed", self.on_changed) cb.append_text('PyQt') cb.append_text('Tkinter') cb.append_text('WxPython') cb.append_text('PyGTK') cb.append_text('PySide') fixed = gtk.Fixed() lbl = gtk.Label("select a GUI toolkit") fixed.put(lbl, 25,75) fixed.put(cb, 125,75) lbl2 = gtk.Label("Your choice is:") fixed.put(lbl2, 25,125) self.label = gtk.Label("") fixed.put(self.label, 125,125) self.add(fixed) self.connect("destroy", gtk.main_quit) self.show_all() def on_changed(self, widget): self.label.set_label(widget.get_active_text()) 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
دیدگاه شما