PyGTK - Classe de notebook
Le widget Notebook est un conteneur à onglets. Chaque onglet de ce conteneur contient une page différente et les pages sont vues de manière superposée. Toute page souhaitée est rendue visible en cliquant sur l'étiquette de l'onglet. Les étiquettes peuvent être configurées pour être affichées en haut ou en bas ou à gauche ou à droite. Un widget conteneur avec d'autres widgets placés dedans ou un widget unique est placé sous chaque page.
Si les données à afficher sont trop volumineuses dans une vue, elles sont regroupées dans différentes pages, chacune placée sous un onglet d'un widget Notebook. Ce type de contrôle est très largement utilisé. Le navigateur Internet, par exemple, utilise cet affichage à onglets pour rendre différentes pages dans différents onglets.
Ce qui suit est un constructeur de la classe gtk.Notebook -
gtk.Notebook()
Voici les méthodes fréquemment utilisées de la classe gtk.Notebook -
append_page(child, label)- Ceci ajoute une page au bloc-notes contenant un widget spécifié par tab_label comme étiquette sur l'onglet. Si tab_label peut être None pour utiliser une étiquette par défaut.
insert_page(child, label, position) - Ceci insère une page dans le cahier à l'emplacement spécifié par la position.
remove_page(index) - Cela supprime une page à l'index spécifié.
get_current_page() - Ceci renvoie l'index de page de la page actuelle.
set_current_page(index) - Ceci bascule sur le numéro de page spécifié par l'index.
set_show_tabs()- Si faux, les onglets ne seront pas visibles. C'est vrai par défaut.
set_tab_pos(pos)- Ceci définit le bord auquel les onglets pour changer de page dans le bloc-notes sont dessinés. Les constantes prédéfinies sont -
gtk.POS_LEFT
gtk.POS_RIGHT
gtk.POS_TOP
gtk.POS_BOTTOM
set_tab_label_text(child, text) - Cela crée une nouvelle étiquette avec le texte spécifié et la définit comme étiquette d'onglet pour la page contenant l'enfant.
Le widget gtk.Notebook émet les signaux suivants -
changer la page actuelle | Ceci est émis lorsque la demande de page en avant ou de page en arrière est émise |
focus-tab | Ceci est émis lorsque le focus est modifié par tabulation. |
page ajoutée | Ceci est émis lorsqu'une page est ajoutée au bloc-notes. |
page supprimée | Ceci est émis après qu'une page est supprimée du bloc-notes. |
select-page | Ceci est émis lorsqu'une nouvelle page enfant est sélectionnée. |
commutateur-page | Ceci est émis lorsque la page du notebook est modifiée. |
Exemple
Dans l'exemple suivant, un gtk.Notebook avec trois pages est placé dans un gtk.Window de niveau supérieur. La première page contient une VBox dans laquelle une étiquette et un champ d'entrée sont emballés. La deuxième page intitulée «qualifications» a une HButtonBox dans laquelle trois widgets RadioButton mutuellement exclusifs sont ajoutés. La troisième page a un objet TextView. Les étiquettes de page sont affichées en haut.
Observez le 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()
Lors de l'exécution, le code ci-dessus affiche un cahier avec trois pages -