Spinbox

fr = Spinbox(parent, opcao=valor, ...)

O componente Spinbox é uma variante do componente Entry que permite selecionar de um conjunto pré-definido de valores.

Atributos

OpçãoDescrição
activebackgroundCor de fundo quando o cursor está sobre elas.
bd ou borderwidthEspessura da borda à volta do componente.
bg ou backgroundCor de fundo do componente.
buttonbackgroundCor de fundo das setas.
buttoncursorCursor mostrado quando o rato está sobre as setas.
buttondownreliefEstilo do relevo da seta que aponta para baixo.
buttonupreliefEstilo do relevo da seta que aponta para cima.
commandFunção a ser chamada quando uma das setas é clicada.
cursorNome do cursor a ser mostrado quando o rato está sobre a caixa de texto do componente.
disablebackgroundCor de fundo quando o componente está desabilitado (state = tk.DISABLED).
disableforegroundCor de primeiro plano quando o componente está desabilitado (state = tk.DISABLED).
exportselectionSe True, impede que o conteúdo na caixa de texto do componente possa ser cortado e colado.
fontFonte da caixa de texto do componente.
fg or foregroundCor do texto da caixa de texto do componente e das setas.
formatPermite formatar os valores numéricos na caixa de texto do componente em conjugação com os atributos from_ e to. format=’%5.3f’ mostra o valor numérico na átrea de texto com 5 digitos, sendo 3 casas decimais.
from_Permite, em conjugação com o atributo to restringir os valores a uma gama de valores. from_=10 e to=20, permite sómente valores entre 10 e 20.
highlightbackgroundCor do foco quando a spinbox nao tem o foco.
highlightcolorCor do foco quando a spinbox tem o foco.
highlightthicknessEspessura do foco. Valor de defeito 1. Definir como 0 para suprimir a espessura do foco.
incrementValor do incremento entre os valores de from_ e to quando o utilizador clica nas setas. Com from_=10 e to=12 e increment=0.5, a seta para cima incrementará entre os valores 10.0, 10.5, 11.0, 11.5, and 12.0.
insertbackgroundSeleciona a cor do cursor de inserção na caixa de texto.
insertborderwidthEspessura da borda do cursor de inserção. Por defeito, o cursor de inserção não tem borda. Se este valor fôr maior que 0 o cursor de inserção terá o estilo de relevo tk.RAISED.
insertofftimeinsertontimeControla o tempo de piscagem do cursor de inserção, em milisegundos.
insertwidthEspessura do cursor de inserção.
justifyPosição do texto na caixa de texto. Valores possíveis: tk.LEFT, tk.CENTER, tk.RIGHT.
readonlybackgroundCor de fundo quando o componente está definido sómente para leitura state=’readonly’.
reliefTipo de relevo do spinbox. Valor de defeito: tk.SUNKEN.
repeatdelayrepeatintervalEstas opções controla o tempo de repetição quando o rato está sobre as setas.
selectbackgroundselectforegroundselectborderwidthCor de fundo, cor de primeiro plano e espessura da borda dos items selecionados.
stateValores: tk.NORMAL (valor de defeito); tk.DISABLED: o spinbox deixa de responder a ações do rato e do teclado; ‘readonly’ : o valor na caixa de texto não pode ser alterado a partir do teclado mas pode sê-lo a partir das setas os valores podem ser copiados.
takefocusSe igual a zero a caixa de texto do spinboxx não receberá o foco a partir do teclado.
textvariableVariável de controle do componente que guardará o valor corrente do mesmo.
toEspecifica o valor mais alto de uma gama de valores. Ver from_
valuesEste atributo permite especificar um tuplo com os valores do componente. Por exemplo: values=(4, 5, 6) (ver melhor)
widthNúmero de caracteres permitidos na caixa de texto. Valor de defeito é 20.
wrapSe este atributo fôr True permite que, quando se atinge os limites inferior ou superior, da gama de valores, continue para o valor superior ou inferior, respectivamente.
xscrollcommandUsar este atributo para ligar uma Scrollbar à caixa de texto do componente.

Métodos

.bbox(indice) : retorna a caixa delimitadora do caratere na posição indice da caixa de texto. É um tuple (x, y, w, h) em que xy são as coordenadas do canto superior esquerdo e wh são a largura e a altura da caixa.

.delete(primeiro, ultimo=None) : elimina carateres da caixa de texto. Os valores primeiroultimo, são usados da mesma forma do fatiamento em Python.

.get() : retorna uma string com o valor actual da spinbox.

.icursor(indice) : posiciona o cursor na posição indice da caixa de texto da spinbox.

.identify(x, y) : retorna uma string com o valor que está na posição (x, y). Os valores podem ser:

  • ‘valor’: para a caixa de texto.
  • ‘buttonup’: para a seta a apontar para cima.
  • ‘buttondown’: para a seta a apontar para baixo.
  • : se as coordenadas não pertencem ao componente.

.index(indice) : retorna a posição do indice. Valores podem ser:

  • tk.END: obtém a posição após o último caratere.
  • tk.INSERT: obtém a posição do cursor de inserção.
  • tk.ANCHOR: obtém a posição da âncora de seleção.
  • tk.SEL_FIRST: obtém a posição do início da seleção.
  • tk.SEL_LAST: obtém a posição após o fim da seleção.
  • Uma string na forma ‘@x’: posição do caratere na coordenada x.

.insert(indice, texto) : insere caracteres da string texto na posição indice. Ver index() para valores possíveis de indice.

.invoke(seta) : este método produz o mesmo efeito de clicar nas setas: seta = ‘buttonup’ para a seta que aponta para cima, seta = ‘buttondown’ para a seta que aponta para baixo.

.selection(‘from’, indice) : define a âncora de seleção para a posição especiidcada por indice. Ver index() para valores possíveis de indice.

.selection(‘to’, indice) : seleciona o texto entre a âncora de seleção e a posição dada por indice.

.selection(‘range’, start, end) : seleciona o texto entre start e end. Ver index() para valores permitidos de indice.

.selection_clear() : limpa a seleção.

.selection_get() : retorna o texto selecionado.

Exemplo 1:

Spinbox com valores entre 1 e 20:

from tkinter import *

window = Tk()
window.title("Tkinter - Spinbox")
window.geometry("200x100")

#cria spinbox com valores entre 1 e 20:
sb = Spinbox(window, from_=1, to=20)
sb.pack()

def ver():
    #obtem o valor do spinbox:
    print(sb.get())

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

window.mainloop()

Saída:

Exemplo 2:

Spinbox com valores entre 0 e 20 e incremento de 2:

from tkinter import *

window = Tk()
window.title("Tkinter - Spinbox")
window.geometry("200x100")

#cria spinbox com valores entre 0 e 20:
sb = Spinbox(window, from_=0, to=20, increment=2)
sb.pack()

def ver():
    #obtem o valor do spinbox:
    print(sb.get())

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

window.mainloop()

Saída:

Exemplo 3:

Spinbox com valores pré-definidos:

from tkinter import *

window = Tk()
window.title("Tkinter - Spinbox")
window.geometry("200x100")

#cria spinbox com valores 6, 7, 8, 9:
sb = Spinbox(window, values=(6, 7, 8, 9))
sb.pack()

def ver():
    #obtem o valor do spinbox:
    print(sb.get())

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

window.mainloop()

Saída: