Visual – ComboBox, ListBox – Bind, ComboboxSelected , Double-Button, Current, CurSelection – Python – Linux

Publicado: 20 de março de 2014 em Python

ComboBox

O Widget ttk.Combobox combina um campo de texto com uma lista drop-down de valores. Esse widget é uma subclasse do Widget Entry. A caixa de escolha fornece ao usuário um conjunto de opções comuns para uma opção, mas, opcionalmente, permiti adicionar em sua própria escolha que não está na lista.

ListBox

O Widget Listbox é um widget Tkinter padrão usado para exibir uma lista de alternativas. A caixa de listagem só pode conter itens de texto, e todos os itens devem ter o mesmo tipo de letra e cor. Dependendo da configuração do widget, o usuário pode escolher uma ou mais alternativas a partir da lista.

Bind

Vincula métodos ou eventos a um componentes.

<<ComboboxSelected>>

Evento que ocorre quando o estado de um Combobox sofre uma mudança.

<Double-Button-1>

Evento que ocorre quando um componente sofre um duplo clique.

Exemplo:

Neste exemplo criamos um ComboBox e um ListBox que interagem entre si, usando seus respectivos eventos.

Python

#!/usr/bin/env python
# -*- coding: latin-1 -*-
# Desenvolvimento Aberto
# ComboList.py

# importa modulo
import ttk
from Tkinter import *

# Cria formulario
formulario = Tk()
formulario.title = "Desenvolvimento Aberto"

# Limpa Label
def limpa():
    limpa = chr(32)
    for i in range(1,18):
          limpa = limpa + chr(32)
    return limpa

# Evento ocorre quando muda a seleção do combo
def evento(*args):
    txt = combo.get() + limpa()
    tmusica = Label(formulario, text = txt)
    tmusica.grid(row=1, sticky=W)
    lista.selection_set(combo.current())

# Evento ocorre quando há um duplo clique na lista
def duplo_clique(*args):
    txt = lista.selection_get() + limpa()
    tmusica = Label(formulario, text = txt)
    tmusica.grid(row=1, sticky=W)
    combo.current(lista.curselection())

# Cria itens
itens = ["Satisfaction" , "Paint it Black" , "Wild Horses", "Brown Sugar",
                          "Sympathy for the Devil", "Start Me Up"]

# Cria Labels
titulo = Label(formulario, text ="Roling Stones:")
tmusica = Label(formulario, text = "Musica")
tlista = Label(formulario, text = "ListBox - Duplo click em uma Opcao")
tcombo = Label(formulario, text = "Combobox - Escolha uma Opcao")

# Cria um ListBox - e adicona prorpriedades e eventos
lista = Listbox(formulario)
for item in itens:
    lista.insert(END,item)
lista.selection_set(0)
lista.bind("<Double-Button-1>", duplo_clique)

# Cria um ComboBox - e adicona prorpriedades e eventos
combo = ttk.Combobox(formulario)
combo["values"] = itens
combo.current(0)
combo.bind("<<ComboboxSelected>>", evento)

# Posiciona componentes na tela
titulo.grid(row=0, sticky=W)
tmusica.grid(row=1, sticky=W, pady=10)
tlista.grid(row=4, sticky=W, pady=5)
lista.grid(row=5, sticky= W)
tcombo.grid(row=6, sticky=W, pady=5)
combo.grid(row=7, sticky=W)

# Roda o loop principal 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 )

Imagem do Twitter

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

Foto do Facebook

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

Conectando a %s