Notebook
O componente Notebook permite organizar um ecran em páginas entre as quais podemos navegar através de tabs visíveis no componente.
Cada tab tem como filho um painel, por exemplo, uma Frame com vários componentes.
As tabs são indexadas a partir do 0 tendo a primeira tab o índice 0, a segunda o índice 1, etc.
Só uma tab e respectiva página é visível a cada momento, sendo que a tab visível é a tab selecionada.
O método add() permite adicionar uma tab e respectivo conteúdo ao Notebook.
Podemos remover ou esconder tabs usando os métodos forget() ou hide(), respetivamente.
nb = ttk.Notebook(parent, option=value, ...)
Atributos
Opção | Descrição |
---|---|
class_ | Nome da classe do componente. |
cursor | Cursor mostrado quando o rato está sobre o componente. |
height | Define a altura do notebook em pixeis. |
padding | Define a dimensão de uma área vazia à volta do notebook. |
style | Estilo usado na visualização do componente. |
takefocus | Para impedir que o componente aceite foco via teclado, fazer takefocus=False. |
width | Define a largura do notebook em pixeis. |
Métodos
Os métodos do Notebook são todos os comuns a todos os componentes ttk mais os seguintes:
.add(child, **options) : Adiciona uma nova tab child ao noteboook se a child tab não existir. Normalmente, child é um componente, usualmente uma Frame.
child: tab do componente.
**options: opções da tab.
.enable_traversal() : Se chamar este método, as seguintes combinações de teclas estarão disponíveis:
- Control-Tab: seleciona a tab a seguir à tab correntemente selecionada. Se a tab correntemente selecionada fôr a última, seleciona a primeira tab.
Shift-Control-Tab: faz o contrário de contro-Tab: seleciona a tab antes da tab correntemente selecionada.Pode-se configurar uma tecla para selecionar uma tab em particular. Para isto deve-se usar as opções text e underline da tab para sublinhar um dos carateres da tab. Ao fazer Alt-c, em que c é o caratere sublinhado da tab, essa tab será selecionada.
.forget(child) : Remove a tab child do conjunto de tabs do notebook.
child: tab do componente a remover.
.hide(tabId) : Esconde a tab identificada por tabId. Para a tornar visível de novo usar o método .add().
tabId: identificação da tab a esconder.
.index(tabId) : Retorna o índice da tab identificada por tabId. Se o valor do argumento fôr ‘end’ retorna o número de tabs do notebook.
tabId: identificação da tab a esconder.
.insert(where, child, **options) : Insere o componente child na posição where com as opções **options. Se o argumento where fôr ‘end’, insere no fim da todas as tabs existentes.
where: posição de inserção.
child: tab a inserir.
**options: opções da tab.
.select([tabId]) : Retorna o nome da janela do componente na tab identificada por tabId. Sem argumento, retorna o nome da janela do componente na tab correntemente selecionada.
tabId: identificação da tab.
.tab(tabId, option=None, **options) : Define ou retorna as opções da tab identificada por tabId. Sem argumentos retorna um dicionário com as opções da tab identificada por tabId. Se option fôr definido com o nome de uma opção, retorna o valor dessa opção.
tabId: identificação da tab.
option: Opcional. Nome de uma opção
**options: lista de pares option=valor.
.tabs() : Retorna uma lista com os nomes das janelas das tabs, da primeira à última.
Exemplo:
from tkinter import *
#importa ttk do tkinter:
from tkinter import ttk
window = Tk()
window.title("Tkinter Ttk - Notebook")
window.geometry("300x200")
#cria notebook:
nb = ttk.Notebook(window)
nb.pack(fill=BOTH, expand=True)
#tab1:
tab1 = ttk.Frame(nb)
lbl = Label(tab1, text="Esta é a tab1")
lbl.pack()
#cria primeira tab:
nb.add(tab1, text='Tab1')
#tab2:
tab2 = ttk.Frame(nb)
lbl = Label(tab2, text="Esta é a tab2")
lbl.pack()
#cria segunda tab:
nb.add(tab2, text='Tab2')
window.mainloop()
Saída:
