آموزش کلاس جعبه در PyGTK
آموزش کلاس جعبه در PyGTK
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش کلاس جعبه در PyGTK خواهیم پرداخت.
پیشنهاد ویژه : پکیج آموزش پروژه محور پایتون
کلاس gtk.Box یک کلاس انتزاعی است که عملکرد یک ظرف را مشخص می کند که در آن ویجت ها در یک منطقه مستطیلی قرار می گیرند. ویجت های gtk.HBox و gtk.VBox از آن مشتق شده اند.
ویجت های کودک در gtk.Hbox به صورت افقی در یک ردیف مرتب شده اند. از سوی دیگر ویجت های کودک gtk.VBox به طور عمودی در یک ستون مرتب شده اند.
کلاس gtk.Box از سازنده زیر استفاده می کند –
1 |
gtk.Box(homogenous = True, spacing = 0) |
ویژگی همگن به طور پیش فرض روی True تنظیم شده است. در نتیجه به همه ویجت های کودک تخصیص مساوی داده می شود.
gtk.Box از مکانیزم بسته بندی برای قرار دادن ویجت های کودک در آن با اشاره به موقعیت خاصی، چه با اشاره به شروع یا پایان استفاده می کند. متد ()pack_start ویجت ها را از ابتدا تا انتها قرار می دهد. برعکس ، روش ()pack_end ویجت ها را از انتها به شروع قرار می دهد. متناوبا ، می توانید از روش ()add استفاده کنید که مشابه ()pack_start است.
روشهای زیر برای gtk.HBox و gtk.VBox در دسترس است –
- ()gtk_box_pack_start
- ()gtk_box_pack_end
()gtk_box_pack_start
این روش کودک را به جعبه اضافه می کند،
1 |
pack_start(child, expand = True, fill = True, padding = 0) |
پارامترهای زیر –
- child – این شی ویجت است که باید به جعبه اضافه شود
- expand – اگر قرار باشد فضای بیشتری در جعبه به کودک داده شود ، روی True تنظیم شده است. فضای اضافی بین همه ابزارک های کودک تقسیم شده است.
- fill – اگر True باشد ، فضای بیشتری به کودک اختصاص داده می شود. در غیر این صورت، این پارامتر به عنوان پد استفاده می شود.
- padding – این فاصله در پیکسل بین ویجت های موجود در جعبه است.
()gtk_box_pack_end
این کار کودک را به جعبه اضافه می کند،
1 |
pack_end (child, expand = True, fill = True, padding = 0) |
پارامترهای زیر –
- child – این شی ویجت است که باید اضافه شود
- expand – اگر قرار باشد فضای بیشتری در جعبه به کودک داده شود ، روی True تنظیم شده است. این فضای اضافی بین همه ابزارک های کودک تقسیم شده است.
- fill – اگر True باشد ، فضای اضافی به کودک اختصاص داده می شود در غیر این صورت به عنوان بالشتک استفاده می شود.
- padding – این فاصله در پیکسل بین ابزارک های موجود در جعبه است.
- set_spacing (فاصله) تابعی است که تعداد پیکسل ها را برای قرار دادن بین فرزندان جعبه تعیین می کند.
- متد add (ویجت) از کلاس gtk.Container به ارث می رسد. ویجت را به ظرف اضافه می کند. این روش را می توان به جای روش ()pack_start استفاده کرد.
مثال
در مثال زیر، پنجره سطح بالا شامل یک جعبه عمودی (جعبه شی gtk.VBox) است. این به نوبه خود دارای شی VBox vb و شی HBox hb است. در کادر بالا، یک برچسب، یک ویجت ورودی و یک دکمه به صورت عمودی قرار داده شده است. در کادر پایین، مجموعه دیگری از برچسب، ورودی و دکمه به صورت عمودی قرار داده شده است.
کد زیر را رعایت کنید –
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 |
import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Box demo") box = gtk.VBox() vb = gtk.VBox() lbl = gtk.Label("Enter name") vb.pack_start(lbl, expand = True, fill = True, padding = 10) text = gtk.Entry() vb.pack_start(text, expand = True, fill = True, padding = 10) btn = gtk.Button(stock = gtk.STOCK_OK) vb.pack_start(btn, expand = True, fill = True, padding = 10) hb = gtk.HBox() lbl1 = gtk.Label("Enter marks") hb.pack_start(lbl1, expand = True, fill = True, padding = 5) text1 = gtk.Entry() hb.pack_start(text1, expand = True, fill = True, padding = 5) btn1 = gtk.Button(stock = gtk.STOCK_SAVE) hb.pack_start(btn1, expand = True, fill = True, padding = 5) box.add(vb) box.add(hb) self.add(box) self.show_all() PyApp() gtk.main() |
کد بالا خروجی زیر را تولید می کند –
دیدگاه شما