Combobox

O componente ComboBox é uma misto de uma entry com um drop-down menu. Quando o utilizador clica na seta existente no componente, abre-se o drop-down menu com uma lista de items. Ao clicar num dos items, ele é selecionado e aparece na caixa de texto. A caixa de texto permite que se escreva nela.

  cmb = ttk.Combobox(parent, option=value, ...)

Atributos

OpçãoDescrição
class_Nome da classe do componente.
cursorCursor mostrado quando o rato está sobre o componente.
exportselectionPor defeito qualquer texto selecionado na caixa de texto é exportado para o clipboard. Fazendo exportselection=0 evita este comportamento.
exportselectionPor defeito qualquer texto selecionado na caixa de texto é exportado para o clipboard. Fazendo exportselection=0 evita este comportamento.
heightDefine o número máximo de linhas que aparece na área de drop-down. O valor de defeito é 20. Se houver mais linhas que o valor definido, é acrescentada uma scrollbar à área de drop-down.
justifyDefine como o texto é posicionado na caixa de texto. Pode ser: tk.LEFT para justificar à esquerda, tk.CENTER para justificar ao meio ou tk.RIGHT para justificar à direita.
postcommandDefine uma função de callback a ser chamada quando o utilizador clica na seta. Esta função pode alterar a opção values e, se tal acontecer, a alteração é refletida na área de drop-down.
styleEstilo usado na visualização do componente.
takefocusPara impedir que o componente aceite foco via teclado, fazer takefocus=False.
textvariableVariável StringVar que controla o texto da caixa de texto.
validatePede validação dinâmica do conteúdo de texto.
validatecommandDefine uma função de callback que, de forma dinâmica, valida o conteúdo de texto do componente.
valuesOpções que aparecem na área de drop-down, como uma sequência de strings.
widthLargura da caixa de texto em número de carateres. Valor de defeito é 20.
xscrollcommandCaso o componente tenha uma scrollbar horizontal, associar esta opção ao método .set() da scrollbar.

Métodos

Os métodos da Combobox são todos os comuns a todos os componentes ttk, mais os seguintes:

.current([index]) : Este método move o texto para a direita ou para a esquerda. Seleciona um elemento da opção values passando o índice index como argumento. Se não fornecer argumento, o método retorna o índice do elemento na caixa de texto, constante na lista em values. Se o elemento na caixa de texto não constar na lista em values, retorna -1.

index: Opcional. Índice de um elemento em values.

.set(value) : Valor a ser colocado na caixa de texto.

value: valor da lista de valores da combobox a ser selecionado.

Exemplo:

from tkinter import *
from tkinter import ttk

window = Tk()
window.title("Tkinter - ttkCombobox")
window.geometry("300x200")

#cria a Combobox a partir do modulo ttk:
combo = ttk.Combobox(window, state="readonly")
combo.pack()

#preenche a combobox:
combo["values"] = ["Python", "C", "C++", "Java"]

#seleciona um valor:
combo.set("Python")


def showLanguage():

    #obteem o valor selecionado:
    lang = combo.get()
    print(lang)

    #obtem o indice do item selecionado:
    idx = combo.current()
    print(idx)

bt = Button(window, width=20, text="Ver", command=showLanguage)
bt.pack(side=BOTTOM)

window.mainloop()