PyGTK - klasa notebooka

Notatnik to kontener z zakładkami. Każda karta w tym kontenerze zawiera inną stronę, a strony są wyświetlane w sposób nakładający się. Dowolna strona jest widoczna po kliknięciu etykiety zakładki. Etykiety można skonfigurować tak, aby były wyświetlane na górze lub na dole, po lewej lub po prawej stronie. Pod każdą stroną umieszczany jest widget kontenera z umieszczonymi w nim innymi widgetami lub pojedynczym widgetem.

Jeśli dane do wyświetlenia są zbyt duże w jednym widoku, są zgrupowane na różnych stronach, z których każda jest umieszczona na jednej karcie widgetu Notatnik. Ten rodzaj kontroli jest bardzo szeroko stosowany. Na przykład przeglądarka internetowa wykorzystuje ten ekran z zakładkami do renderowania różnych stron w różnych zakładkach.

Poniżej znajduje się konstruktor klasy gtk.Notebook -

gtk.Notebook()

Poniżej przedstawiono często używane metody klasy gtk.Notebook -

  • append_page(child, label)- Spowoduje to dodanie strony do notatnika zawierającej widżet określony przez tab_label jako etykietę na karcie. Jeśli tab_label może mieć wartość None, aby użyć etykiety domyślnej.

  • insert_page(child, label, position) - Spowoduje to wstawienie strony do notatnika w miejscu określonym przez położenie.

  • remove_page(index) - Spowoduje to usunięcie strony o określonym indeksie.

  • get_current_page() - Zwraca indeks bieżącej strony.

  • set_current_page(index) - Przełącza na numer strony określony przez indeks.

  • set_show_tabs()- Jeśli fałsz, karty nie będą widoczne. Domyślnie jest to prawda.

  • set_tab_pos(pos)- Ustawia krawędź, przy której rysowane są zakładki do przełączania stron w notatniku. Wstępnie zdefiniowane stałe to -

    • gtk.POS_LEFT

    • gtk.POS_RIGHT

    • gtk.POS_TOP

    • gtk.POS_BOTTOM

  • set_tab_label_text(child, text) - Spowoduje to utworzenie nowej etykiety z określonym tekstem i ustawienie jej jako etykiety karty dla strony zawierającej element podrzędny.

Widżet gtk.Notebook emituje następujące sygnały -

zmiana-bieżącej-strony Jest to emitowane, gdy wysyłane jest żądanie strony do przodu lub do tyłu
fokus-tab Jest to emitowane, gdy fokus zostanie zmieniony przez tabulator.
strona dodana Jest to emitowane po dodaniu strony do notatnika.
strona usunięta Jest emitowany po usunięciu strony z notatnika.
wybierz stronę Jest to emitowane po wybraniu nowej strony podrzędnej.
zmiana strony Jest to emitowane po zmianie strony notesu.

Przykład

W poniższym przykładzie gtk.Notebook z trzema stronami jest umieszczony na najwyższym poziomie gtk.Window. Pierwsza strona zawiera VBox, w którym znajduje się etykieta i pole wprowadzania. Druga strona, oznaczona jako „kwalifikacje”, zawiera HButtonBox, do którego dodano trzy wzajemnie wykluczające się widżety RadioButton. Trzecia strona zawiera obiekt TextView. Etykiety stron są wyświetlane u góry.

Obserwuj kod -

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()

Po wykonaniu powyższego kodu wyświetla Notatnik z trzema stronami -