آموزش کلاس نوار ابزار در PyGTK
آموزش کلاس نوار ابزار در PyGTK
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش کلاس نوار ابزار در PyGTK خواهیم پرداخت.
پیشنهاد ویژه : پکیج آموزش طراحی وب سایت با پایتون و جنگو
کلاس نوار ابزار از کلاس gtk.Container به ارث برده شده است. مجموعه ای از دکمه ها و سایر ویجت ها را در خود نگه می دارد و مدیریت می کند. معمولاً یک یا چند نوار افقی دکمه درست زیر نوار منو در یک پنجره سطح بالا مشاهده می شود. نوار ابزار را می توان در پنجره جداشدنی به نام HandleBox قرار داد. به طور پیش فرض، دکمه های ویجت gtk.Toolbar به صورت افقی قرار داده شده است. نوار ابزار عمودی را می توان با تنظیم ویژگی جهت گیری روی gtk.ORIENTATION_VERTICAL راه اندازی کرد.
نوار ابزار را می توان پیکربندی کرد تا دکمه هایی با نماد، متن یا هر دو نشان داده شود. شمارشگران سبک عبارتند از –
- gtk.TOOLBAR_ICONS این دکمه ها فقط نمادها را در نوار ابزار نمایش می دهند.
- gtk.TOOLBAR_TEXT این دکمه ها فقط برچسب های متن را در نوار ابزار نمایش می دهند.
- gtk.TOOLBAR_BOTH این دکمه ها متن و نمادها را در نوار ابزار نمایش می دهند.
- gtk.TOOLBAR_BOTH_HORIZ این دکمه ها به جای اینکه بصورت عمودی روی هم چیده شوند ، نمادها و متن را در کنار یکدیگر نمایش می دهند.
ویجت نوار ابزار با استفاده از سازنده زیر راه اندازی شده است –
1 |
bar = gtk.Toolbar() |
اجزای تشکیل دهنده نوار ابزار مواردی از gtk.ToolItem هستند. موارد می توانند ToolButton ، RadioToolButton ، ToggleToolButton یا SeparatorToolItem باشند. برای تخصیص نماد به شی ToolItem، می توان از تصاویر با stock_ID از پیش تعریف شده استفاده کرد یا با روش ()set_image یک تصویر سفارشی تعیین کرد.
مثالهای زیر نحوه ساخت ابزارهای مختلف ToolItems را نشان می دهد –
ToolButton
1 |
newbtn = gtk.ToolButton(gtk.STOCK_NEW) |
RadioToolButton
1 2 |
rb1 = gtk.RadioToolButton(None,gtk.STOCK_JUSTIFY_LEFT) rb2 = gtk.RadioToolButton(rb1,gtk.STOCK_JUSTIFY_RIGHT) |
توجه داشته باشید که چندین دکمه رادیویی در یک گروه قرار می گیرند.
SeparatorToolItem
1 |
sep = gtk.SeparatorToolItem() |
این موارد با فراخوانی متد insert در نوار ابزار قرار می گیرند.
1 |
gtk.Toolbar.insert(item, index) |
مثلا،
1 |
bar.insert(new,0) |
همچنین می توانید با استفاده از set_tooltip_text() nethod یک tooltip را به ToolButton اختصاص دهید. به عنوان مثال، New tooltip به ToolButton جدید اختصاص داده شده است.
1 |
newbtn.set_tooltip_text("New") |
مثال
کد زیر یک پنجره سطح بالا را نشان می دهد که یک نوار ابزار تنظیم شده است تا شامل موارد عادی ابزار، موارد رادیویی و یک مورد جدا کننده باشد.
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 |
import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Toolbar Demo") self.set_default_size(250, 200) self.set_position(gtk.WIN_POS_CENTER) toolbar = gtk.Toolbar() toolbar.set_style(gtk.TOOLBAR_ICONS) toolbar.set_orientation(gtk.ORIENTATION_HORIZONTAL) newbtn = gtk.ToolButton(gtk.STOCK_NEW) newbtn.set_tooltip_text("New") openbtn = gtk.ToolButton(gtk.STOCK_OPEN) savebtn = gtk.ToolButton(gtk.STOCK_SAVE) sep = gtk.SeparatorToolItem() rb1 = gtk.RadioToolButton(None,gtk.STOCK_JUSTIFY_LEFT) 53 rb2 = gtk.RadioToolButton(rb1,gtk.STOCK_JUSTIFY_RIGHT) prv = gtk.ToggleToolButton(gtk.STOCK_PRINT_PREVIEW) quitbtn = gtk.ToolButton(gtk.STOCK_QUIT) toolbar.insert(newbtn, 0) toolbar.insert(openbtn, 1) toolbar.insert(savebtn, 2) toolbar.insert(sep, 3) toolbar.insert(rb1,4) toolbar.insert(rb2,5) toolbar.insert(prv,6) toolbar.insert(quitbtn, 7) quitbtn.connect("clicked", gtk.main_quit) vbox = gtk.VBox(False, 2) vbox.pack_start(toolbar, False, False, 0) self.add(vbox) self.connect("destroy", gtk.main_quit) self.show_all() def on_checked(self, widget, data = None): state = "Button1 : "+str(self.btn1.get_active())+" Button2 : "+str(self.btn2.get_active()) self.lbl.set_text(state) 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
دیدگاه شما