PyGTK - Notebook Class

Il widget Notebook è un contenitore a schede. Ogni scheda in questo contenitore contiene una pagina diversa e le pagine vengono visualizzate in modo sovrapposto. Qualsiasi pagina desiderata viene resa visibile facendo clic sull'etichetta della scheda. Le etichette possono essere configurate per essere visualizzate in alto o in basso oppure a sinistra oa destra. Sotto ogni pagina viene posizionato un widget contenitore con altri widget inseriti o un singolo widget.

Se i dati da visualizzare sono troppo grandi in una visualizzazione, vengono raggruppati in pagine diverse, ciascuna collocata in una scheda di un widget Notebook. Questo tipo di controllo è molto diffuso. Il browser Internet, ad esempio, utilizza questa visualizzazione a schede per visualizzare pagine diverse in schede diverse.

Quello che segue è un costruttore della classe gtk.Notebook -

gtk.Notebook()

I seguenti sono i metodi usati di frequente della classe gtk.Notebook:

  • append_page(child, label)- Questo aggiunge una pagina al taccuino contenente un widget specificato da tab_label come etichetta sulla scheda. Se tab_label può essere Nessuno per utilizzare un'etichetta predefinita.

  • insert_page(child, label, position) - Questo inserisce una pagina nel blocco note nella posizione specificata da posizione.

  • remove_page(index) - Questo rimuove una pagina all'indice specificato.

  • get_current_page() - Questo restituisce l'indice della pagina della pagina corrente.

  • set_current_page(index) - Questo passa al numero di pagina specificato dall'indice.

  • set_show_tabs()- Se false, le schede non saranno visibili. Questo è True per impostazione predefinita.

  • set_tab_pos(pos)- Questo imposta il bordo in corrispondenza del quale vengono disegnate le schede per cambiare pagina nel blocco note. Le costanti predefinite sono:

    • gtk.POS_LEFT

    • gtk.POS_RIGHT

    • gtk.POS_TOP

    • gtk.POS_BOTTOM

  • set_tab_label_text(child, text) - Questo crea una nuova etichetta con il testo specificato e la imposta come etichetta di tabulazione per la pagina che contiene il bambino.

Il widget gtk.Notebook emette i seguenti segnali:

cambia-pagina-corrente Viene emesso quando viene inviata la richiesta di pagina successiva o pagina precedente
focus-tab Viene emesso quando lo stato attivo viene modificato dalla tabulazione.
pagina aggiunta Viene emesso quando una pagina viene aggiunta al taccuino.
pagina rimossa Viene emesso dopo che una pagina viene rimossa dal blocco note.
seleziona-pagina Viene emesso quando viene selezionata una nuova pagina figlio.
switch-page Viene emesso quando viene modificata la pagina del taccuino.

Esempio

Nell'esempio seguente, un gtk.Notebook con tre pagine viene posizionato in una gtk.Window di primo livello. La prima pagina contiene un VBox in cui sono imballati un'etichetta e un campo di immissione. La seconda pagina denominata "qualifiche" ha un HButtonBox in cui vengono aggiunti tre widget RadioButton che si escludono a vicenda. La terza pagina ha un oggetto TextView. Le etichette delle pagine vengono visualizzate in alto.

Rispetta il codice -

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

Al momento dell'esecuzione, il codice sopra mostra un blocco note con tre pagine: