Em interfaces gráficas de usuário (GUI), uma interface tabulada ou um Tab Control é um widget que permite a interação de vários documentos ou painéis para ser contido dentro de uma única janela, usando guias como um widget de navegação para alternar entre conjuntos de painéis.
ttk,Notebook
Widget Notebook gerencia uma coleção de janelas e exibe uma única janela de cada vez. Cada janela filho é associado a um guia.
NotebookTabChanged
Evento que é disparado a cada mudança de guia do componente NoteBook.
Exemplo:
Neste exemplo criamos um painel tabulado com 3 guias onde na primeira e na segunda guia o usuário entrará com um numero inteiro e na terceira guia sobre o evento NotebookTabChanged efetuaremos a soma dos números escolhidos.
Python
#!/usr/bin/env python
# -*- coding: latin-1 -*-
# Desenvolvimento Aberto
# ScrolledText.py
# importa modulo
from Tkinter import *
from ttk import *
# Cria formulario
formulario = Tk()
formulario.title = "Desenvolvimento Aberto"
# Cria Notebook
abas = Notebook(formulario)
# Cria paineis
painel1 = Frame(abas)
painel2 = Frame(abas)
painel3 = Frame(abas)
# Metodo do evento TabChange
def mudaEstado(*args):
if (abas.index("current") == 2):
soma = int(numero1.get()) + int(numero2.get())
total["text"] = str(soma)
#Declara componentes e insere a cada painel
Label(painel1, text = "Escolha o primero numero inteiro:" ).pack(padx=20, pady=10)
numero1 = Entry(painel1)
Label(painel2, text = "Escolha o segundo numero inteiro:" ).pack(padx=20, pady=10)
numero2 = Entry(painel2)
Label(painel3, text = "Total da soma:" ).pack(padx=20, pady=10)
total = Label(painel3, text = "0")
# Cria abas
abas.add(painel1, text="Numero 1")
abas.add(painel2, text="Numero 2")
abas.add(painel3, text="Total")
# Cria evento TabChange
abas.bind("<<NotebookTabChanged>> ", mudaEstado)
# Posiciona componentes aos paineis
abas.pack(padx=20, pady=20);
numero1.pack(padx=20, pady=5)
numero2.pack(padx=20, pady=5)
total.pack(padx=20, pady=5)
# loop do tcl
mainloop()


