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ção | Descrição |
|---|---|
| activebackground | Cor de fundo quando o cursor está sobre elas. |
| bd ou borderwidth | Espessura da borda à volta do componente. |
| bg ou background | Cor de fundo do componente. |
| buttonbackground | Cor de fundo das setas. |
| buttoncursor | Cursor mostrado quando o rato está sobre as setas. |
| buttondownrelief | Estilo do relevo da seta que aponta para baixo. |
| buttonuprelief | Estilo do relevo da seta que aponta para cima. |
| command | Função a ser chamada quando uma das setas é clicada. |
| cursor | Nome do cursor a ser mostrado quando o rato está sobre a caixa de texto do componente. |
| disablebackground | Cor de fundo quando o componente está desabilitado (state = tk.DISABLED). |
| disableforeground | Cor de primeiro plano quando o componente está desabilitado (state = tk.DISABLED). |
| exportselection | Se True, impede que o conteúdo na caixa de texto do componente possa ser cortado e colado. |
| font | Fonte da caixa de texto do componente. |
| fg or foreground | Cor do texto da caixa de texto do componente e das setas. |
| format | Permite 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. |
| highlightbackground | Cor do foco quando a spinbox nao tem o foco. |
| highlightcolor | Cor do foco quando a spinbox tem o foco. |
| highlightthickness | Espessura do foco. Valor de defeito 1. Definir como 0 para suprimir a espessura do foco. |
| increment | Valor 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. |
| insertbackground | Seleciona a cor do cursor de inserção na caixa de texto. |
| insertborderwidth | Espessura 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. |
| insertofftime, insertontime | Controla o tempo de piscagem do cursor de inserção, em milisegundos. |
| insertwidth | Espessura do cursor de inserção. |
| justify | Posição do texto na caixa de texto. Valores possíveis: tk.LEFT, tk.CENTER, tk.RIGHT. |
| readonlybackground | Cor de fundo quando o componente está definido sómente para leitura state=’readonly’. |
| relief | Tipo de relevo do spinbox. Valor de defeito: tk.SUNKEN. |
| repeatdelay, repeatinterval | Estas opções controla o tempo de repetição quando o rato está sobre as setas. |
| selectbackground, selectforeground, selectborderwidth | Cor de fundo, cor de primeiro plano e espessura da borda dos items selecionados. |
| state | Valores: 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. |
| takefocus | Se igual a zero a caixa de texto do spinboxx não receberá o foco a partir do teclado. |
| textvariable | Variável de controle do componente que guardará o valor corrente do mesmo. |
| to | Especifica o valor mais alto de uma gama de valores. Ver from_ |
| values | Este atributo permite especificar um tuplo com os valores do componente. Por exemplo: values=(4, 5, 6) (ver melhor) |
| width | Número de caracteres permitidos na caixa de texto. Valor de defeito é 20. |
| wrap | Se 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. |
| xscrollcommand | Usar 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 x, y são as coordenadas do canto superior esquerdo e w, h são a largura e a altura da caixa.
.delete(primeiro, ultimo=None) : elimina carateres da caixa de texto. Os valores primeiro, ultimo, 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:

