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