PyGTK - Kelas Notebook
Widget notebook adalah wadah bertab. Setiap tab dalam wadah ini memiliki halaman yang berbeda dan halaman-halaman tersebut dilihat secara tumpang tindih. Halaman apa pun yang diinginkan ditampilkan dengan mengklik label tab. Label dapat dikonfigurasi untuk ditampilkan di atas atau bawah atau ke kiri atau kanan. Sebuah widget kontainer dengan widget lain ditempatkan di dalamnya atau satu widget ditempatkan di bawah setiap halaman.
Jika data yang akan ditampilkan terlalu besar dalam satu tampilan, maka akan dikelompokkan dalam halaman yang berbeda, masing-masing ditempatkan di bawah satu tab widget Notebook. Jenis kontrol ini sangat banyak digunakan. Browser internet misalnya, menggunakan tampilan tab ini untuk menampilkan halaman yang berbeda di tab yang berbeda.
Berikut ini adalah konstruktor dari kelas gtk.Notebook -
gtk.Notebook()
Berikut ini adalah metode yang sering digunakan dari kelas gtk.Notebook -
append_page(child, label)- Ini menambahkan halaman ke notebook yang berisi widget yang ditentukan oleh tab_label sebagai label pada tab. Jika tab_label bisa menjadi None untuk menggunakan label default.
insert_page(child, label, position) - Ini menyisipkan halaman ke dalam buku catatan di lokasi yang ditentukan oleh posisi.
remove_page(index) - Ini menghapus halaman pada indeks yang ditentukan.
get_current_page() - Ini mengembalikan indeks halaman dari halaman saat ini.
set_current_page(index) - Ini beralih ke nomor halaman yang ditentukan oleh indeks.
set_show_tabs()- Jika salah, tab tidak akan terlihat. Ini Benar secara default.
set_tab_pos(pos)- Ini mengatur tepi di mana tab untuk berpindah halaman di notebook ditarik. Konstanta yang telah ditentukan sebelumnya adalah -
gtk.POS_LEFT
gtk.POS_RIGHT
gtk.POS_TOP
gtk.POS_BOTTOM
set_tab_label_text(child, text) - Ini membuat label baru dengan teks yang ditentukan dan menetapkannya sebagai label tab untuk halaman yang berisi anak.
Widget gtk.Notebook memancarkan sinyal berikut -
ubah-halaman-saat ini | Ini dikeluarkan ketika permintaan halaman maju atau mundur dikeluarkan |
tab fokus | Ini dipancarkan saat fokus diubah dengan tabbing. |
halaman ditambahkan | Ini dibunyikan saat halaman ditambahkan ke buku catatan. |
halaman dihapus | Ini dibunyikan setelah halaman dihapus dari buku catatan. |
pilih-halaman | Ini dipancarkan ketika halaman anak baru dipilih. |
beralih halaman | Ini dibunyikan saat halaman buku catatan diubah. |
Contoh
Dalam contoh berikut, gtk.Notebook dengan tiga halaman ditempatkan di gtk.Window tingkat atas. Halaman pertama menyimpan VBox di mana label dan field Entri dikemas. Halaman kedua berlabel 'kualifikasi' memiliki HButtonBox di mana tiga widget RadioButton yang saling eksklusif ditambahkan. Halaman ketiga memiliki objek TextView. Label halaman ditampilkan di atas.
Perhatikan kodenya -
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Notebook Demo")
self.set_default_size(250, 200)
nb = gtk.Notebook()
nb.set_tab_pos(gtk.POS_TOP)
vbox = gtk.VBox(False, 5)
vb = gtk.VBox()
hbox = gtk.HBox(True, 3)
valign = gtk.Alignment(0.5,0.25, 0, 0)
lbl = gtk.Label("Name of student")
vb.pack_start(lbl, True, True, 10)
text = gtk.Entry()
vb.pack_start(text, True, True, 10)
valign.add(vb)
vbox.pack_start(valign)
nb.append_page(vbox)
nb.set_tab_label_text(vbox, "Name")
hb = gtk.HButtonBox()
btn1 = gtk.RadioButton(None,"Degree")
hb.add(btn1)
btn2 = gtk.RadioButton(btn1,"P.G.")
hb.add(btn2)
btn3 = gtk.RadioButton(btn1,"Doctorate")
hb.add(btn3)
nb.append_page(hb)
nb.set_tab_label_text(hb, "Qualification")
tv = gtk.TextView()
nb.append_page(tv)
nb.set_tab_label_text(tv, "about")
self.add(nb)
self.connect("destroy", gtk.main_quit)
self.show_all()
if __name__ == '__main__':
PyApp()
gtk.main()
Setelah dijalankan, kode di atas menampilkan Notebook dengan tiga halaman -