PyGTK - Notebook-Klasse
Das Notebook-Widget ist ein Container mit Registerkarten. Jede Registerkarte in diesem Container enthält eine andere Seite und die Seiten werden überlappend angezeigt. Jede gewünschte Seite wird durch Klicken auf die Beschriftung der Registerkarte sichtbar gemacht. Die Beschriftungen können so konfiguriert werden, dass sie oben oder unten oder links oder rechts angezeigt werden. Unter jeder Seite befindet sich ein Container-Widget mit anderen Widgets oder ein einzelnes Widget.
Wenn die anzuzeigenden Daten in einer Ansicht zu groß sind, werden sie auf verschiedenen Seiten gruppiert, die jeweils unter einer Registerkarte eines Notebook-Widgets platziert sind. Diese Art der Steuerung ist sehr weit verbreitet. Der Internetbrowser verwendet diese Anzeige mit Registerkarten zum Rendern verschiedener Seiten auf verschiedenen Registerkarten.
Das Folgende ist ein Konstruktor der Klasse gtk.Notebook -
gtk.Notebook()
Im Folgenden sind die häufig verwendeten Methoden der Klasse gtk.Notebook aufgeführt:
append_page(child, label)- Hiermit wird eine Seite an das Notizbuch angehängt, die ein Widget enthält, das von tab_label als Bezeichnung auf der Registerkarte angegeben wird. Wenn tab_label None sein kann, wird eine Standardbezeichnung verwendet.
insert_page(child, label, position) - Dadurch wird eine Seite an der durch die Position angegebenen Position in das Notizbuch eingefügt.
remove_page(index) - Dadurch wird eine Seite am angegebenen Index entfernt.
get_current_page() - Dies gibt den Seitenindex der aktuellen Seite zurück.
set_current_page(index) - Hiermit wird auf die im Index angegebene Seitenzahl umgeschaltet.
set_show_tabs()- Wenn false, werden Registerkarten nicht angezeigt. Dies ist standardmäßig True.
set_tab_pos(pos)- Hiermit wird die Kante festgelegt, an der die Registerkarten zum Wechseln der Seiten im Notizbuch gezeichnet werden. Die vordefinierten Konstanten sind -
gtk.POS_LEFT
gtk.POS_RIGHT
gtk.POS_TOP
gtk.POS_BOTTOM
set_tab_label_text(child, text) - Dadurch wird eine neue Beschriftung mit dem angegebenen Text erstellt und als Registerkartenbeschriftung für die Seite mit dem untergeordneten Element festgelegt.
Das gtk.Notebook-Widget sendet die folgenden Signale aus:
aktuelle Seite ändern | Dies wird ausgegeben, wenn die Anforderung zum Vorwärts- oder Rückwärtsseiten ausgegeben wird |
Fokus-Registerkarte | Dies wird ausgegeben, wenn der Fokus durch Tabulieren geändert wird. |
Seite hinzugefügt | Dies wird ausgegeben, wenn eine Seite zum Notizbuch hinzugefügt wird. |
Seite entfernt | Dies wird ausgegeben, nachdem eine Seite aus dem Notizbuch entfernt wurde. |
Seite auswählen | Dies wird ausgegeben, wenn eine neue untergeordnete Seite ausgewählt wird. |
Switch-Seite | Dies wird ausgegeben, wenn die Notebook-Seite geändert wird. |
Beispiel
Im folgenden Beispiel wird ein gtk.Notebook mit drei Seiten in einem gtk.Window auf oberster Ebene platziert. Die erste Seite enthält eine VBox, in die ein Etikett und ein Eingabefeld gepackt sind. Die zweite Seite mit der Bezeichnung "Qualifikationen" enthält eine HButtonBox, in der drei sich gegenseitig ausschließende RadioButton-Widgets hinzugefügt werden. Die dritte Seite enthält ein TextView-Objekt. Die Seitenbeschriftungen werden oben angezeigt.
Beachten Sie den Code -
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()
Bei der Ausführung zeigt der obige Code ein Notizbuch mit drei Seiten an -