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:
