PyGTK - Aula de Notebook
O widget do Notebook é um contêiner com guias. Cada guia neste contêiner contém uma página diferente e as páginas são vistas de maneira sobreposta. Qualquer página desejada torna-se visível clicando no rótulo da guia. Os rótulos podem ser configurados para serem exibidos na parte superior ou inferior, à esquerda ou à direita. Um widget de contêiner com outros widgets colocados nele ou um único widget é colocado em cada página.
Se os dados a serem exibidos forem muito grandes em uma visualização, eles serão agrupados em páginas diferentes, cada uma colocada em uma guia de um widget do Notebook. Este tipo de controle é amplamente utilizado. O navegador da Internet, por exemplo, usa essa exibição com guias para renderizar páginas diferentes em guias diferentes.
O seguinte é um construtor da classe gtk.Notebook -
gtk.Notebook()
A seguir estão os métodos mais usados da classe gtk.Notebook -
append_page(child, label)- Isso anexa uma página ao bloco de notas contendo um widget especificado por tab_label como o rótulo na guia. Se tab_label pode ser Nenhum para usar um rótulo padrão.
insert_page(child, label, position) - Isso insere uma página no bloco de notas no local especificado pela posição.
remove_page(index) - Isso remove uma página no índice especificado.
get_current_page() - Isso retorna o índice da página da página atual.
set_current_page(index) - Isso muda para o número da página especificado pelo índice.
set_show_tabs()- Se for falso, as guias não ficarão visíveis. Isso é verdadeiro por padrão.
set_tab_pos(pos)- Isso define a borda em que as guias para alternar páginas no bloco de notas são desenhadas. As constantes predefinidas são -
gtk.POS_LEFT
gtk.POS_RIGHT
gtk.POS_TOP
gtk.POS_BOTTOM
set_tab_label_text(child, text) - Isso cria um novo rótulo com o texto especificado e o define como o rótulo da guia para a página que contém o filho.
O widget gtk.Notebook emite os seguintes sinais -
alterar a página atual | Isso é emitido quando a solicitação de página para frente ou para trás é emitida |
focus-tab | Isso é emitido quando o foco é alterado por tabulação. |
página adicionada | Isso é emitido quando uma página é adicionada ao bloco de notas. |
página removida | Isso é emitido depois que uma página é removida do bloco de notas. |
página de seleção | Isso é emitido quando uma nova página filha é selecionada. |
mudar de página | Isso é emitido quando a página do bloco de notas é alterada. |
Exemplo
No exemplo a seguir, um gtk.Notebook com três páginas é colocado em um gtk.Window de nível superior. A primeira página contém um VBox no qual um rótulo e um campo de entrada são compactados. A segunda página rotulada 'qualifications' tem um HButtonBox no qual três widgets RadioButton mutuamente exclusivos são adicionados. A terceira página possui um objeto TextView. Os rótulos da página são exibidos na parte superior.
Observe o código -
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()
Após a execução, o código acima exibe um Notebook com três páginas -