Visual – NoteBook (ttk) – NotebookTabChanged – Python – Linux

Publicado: 8 de abril de 2014 em Python

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.

notebook-py

ttk – 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()
Publicidade

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s