آموزش کلاس نوار وضعیت در PyGTK
آموزش کلاس نوار وضعیت در PyGTK
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش کلاس نوار وضعیت در PyGTK خواهیم پرداخت.
پیشنهاد ویژه : آموزش طراحی وب سایت با پایتون
یک منطقه اعلان ها یا نوتیفیکیشن ها، معمولاً در پایین پنجره، نوار وضعیت یا Status bar نامیده می شود. هر نوع پیام تغییر وضعیت را می توان در نوار وضعیت نمایش داد. همچنین دارای یک دستگیره است که می توان اندازه آن را تغییر داد.
ویجت gtk.Statusbar مجموعه ای از پیام ها را حفظ می کند. بنابراین ، پیام جدید در بالای پیام فعلی نمایش داده می شود. اگر باز شود، پیام قبلی دوباره قابل مشاهده خواهد بود. منبع پیام باید با شناسه context_id مشخص شود تا بتوان آن را منحصر به فرد تشخیص داد.
در زیر سازنده ویجت gtk.Statusbar است –
1 |
bar = gtk.Statusbar() |
در زیر روش های کلاس gtk.Statusbar آمده است –
- Statusbar.push (context_id، text) – این یک پیام جدید را به پشته نوار وضعیت منتقل می کند.
- Statusbar.pop (context_id) – این پیام بالا را با context_id مشخص شده از پشته نوار وضعیت حذف می کند.
سیگنال های زیر توسط ویجت Statusbar منتشر می شوند –
text-popped | هنگامی که پیامی از پشته پیام نوار وضعیت حذف می شود، منتشر می شود. |
text-pushed | هنگامی که پیامی به پشته پیام statusbar اضافه می شود ، منتشر می شود. |
مثال زیر عملکرد Statusbar را نشان می دهد. پنجره Toplevel شامل یک VBox با دو ردیف است. سطر بالا دارای یک ویجت ثابت است که در آن یک برچسب، یک ویجت ورود و یک دکمه قرار داده شده است. در حالی که، در ردیف پایین، یک ویجت gtk.Statusbar اضافه شده است.
برای ارسال پیام به نوار وضعیت ، باید context_id آن را واکشی کنید.
1 |
id1 = self.bar.get_context_id("Statusbar") |
سیگنال “clicked” شیء Button به یک تابع callback متصل می شود که از طریق آن یک پیام در نوار وضعیت رانده می شود. و هنگامی که کلید Enter را در ویجت Entry فشار می دهید، سیگنال “activate” منتشر می شود. این ویجت به تماس تلفنی دیگری متصل شده است.
1 2 |
btn.connect("clicked", self.on_clicked, id1) txt.connect("activate", self.on_entered, id1) |
هر دو فراخوان از روش ()push برای چشمک زدن پیام در منطقه اعلان استفاده می کنند.
مثال
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 |
import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Statusbar demo") self.set_size_request(400,200) self.set_position(gtk.WIN_POS_CENTER) vbox = gtk.VBox() fix = gtk.Fixed() lbl = gtk.Label("Enter name") fix.put(lbl, 175, 50) txt = gtk.Entry() fix.put(txt, 150, 100) btn = gtk.Button("ok") fix.put(btn, 200,150) vbox.add(fix) self.bar = gtk.Statusbar() vbox.pack_start(self.bar, True, False, 0) id1 = self.bar.get_context_id("Statusbar") btn.connect("clicked", self.on_clicked, id1) txt.connect("activate", self.on_entered, id1) self.add(vbox) self.connect("destroy", gtk.main_quit) self.show_all() def on_clicked(self, widget, data=None): self.bar.push(data, "Button clicked def on_entered(self, widget, data): self.bar.push(data, "text entered") 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
- آموزش کلاس Paned در PyGTK
دیدگاه شما