PyGTK - Kelas Statusbar
Area notifikasi, biasanya di bagian bawah jendela disebut bilah status. Semua jenis pesan perubahan status dapat ditampilkan di bilah status. Ini juga memiliki pegangan yang dapat digunakan untuk mengubah ukurannya.
Widget gtk.Statusbar mengelola tumpukan pesan. Karenanya, pesan baru akan ditampilkan di atas pesan saat ini. Jika muncul, pesan sebelumnya akan terlihat lagi. Sumber pesan harus diidentifikasi oleh context_id untuk mengidentifikasinya secara unik.
Berikut ini adalah konstruktor widget gtk.Statusbar -
bar = gtk.Statusbar()
Berikut ini adalah metode kelas gtk.Statusbar -
Statusbar.push(context_id, text) - Ini mendorong pesan baru ke tumpukan bilah status.
Statusbar.pop(context_id) - Ini menghapus pesan teratas dengan yang ditentukan context_id dari tumpukan bilah status.
Sinyal berikut dipancarkan oleh widget Statusbar -
teks muncul | Ini dibunyikan saat pesan dihapus dari tumpukan pesan bilah status. |
teks-didorong | Ini dibunyikan saat pesan ditambahkan ke tumpukan pesan bilah status. |
Contoh berikut menunjukkan fungsi Statusbar. Jendela Toplevel berisi VBox dengan dua baris. Baris atas memiliki widget Tetap di mana label, widget Entri dan tombol diletakkan. Sedangkan, di baris bawah, widget gtk.Statusbar ditambahkan.
Untuk mengirim pesan ke bilah status, context_id-nya perlu diambil.
id1 = self.bar.get_context_id("Statusbar")
Sinyal 'diklik' dari objek Tombol terhubung ke fungsi panggilan balik di mana pesan didorong di bilah status. Dan, sinyal 'aktifkan' dipancarkan saat tombol Enter ditekan di dalam widget Entri. Widget ini terhubung ke callback lain.
btn.connect("clicked", self.on_clicked, id1)
txt.connect("activate", self.on_entered, id1)
Kedua callback menggunakan push() metode untuk mem-flash pesan di area notifikasi.
Contoh
Perhatikan kode berikut -
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()
Setelah dieksekusi, kode di atas akan menampilkan output berikut -
Coba ketik di kotak teks dan tekan Enter untuk melihat pesan 'teks dimasukkan' di bilah status.