Construindo interfaces
Python com o Tkinter
Roberto Tavares
Índice
................................................................................................................. v
1. Configuração dos widgets do Tkinter ....................................................... 1
1.1. Button ......................................................................................... 1
1.1.1. Para que é utilizado: ......................................................... 1
1.1.2. Como é criado: ................................................................. 1
1.1.3. Opções do widget: ............................................................ 1
1.2. Entry .......................................................................................... 5
1.2.1. Para que é utilizado: ......................................................... 5
1.2.2. Como é criado: ................................................................. 5
1.2.3. Opções do widget: ............................................................ 5
1.3. Label .......................................................................................... 9
1.3.1. Para que é utilizado: ......................................................... 9
1.3.2. Como é criado: ................................................................. 9
1.3.3. Opções do widget: ............................................................ 9
1.4. Menu ........................................................................................ 13
1.4.1. Para que é utilizado: ....................................................... 13
1.4.2. Como é criado: ............................................................... 13
1.4.3. Opções do widget: .......................................................... 13
1.5. Menubutton ............................................................................... 16
1.5.1. Para que é utilizado: ....................................................... 16
1.5.2. Como é criado: ............................................................... 16
1.5.3. Opções do widget: .......................................................... 16
iii
iv
Obs: Este documento está em elaboração, sendo atualizado de acordo
com os artigos publicados da série "TKinter", disponíveis em http://
www.cadernodelaboratorio.com.br
v
vi
1
Configuração dos widgets do Tkinter
1.1. Button
1.1.1. Para que é utilizado:
Os widgets Button são utilizados para criar um botão na janela superior ou em
um frame especificado como pai.
1.1.2. Como é criado:
nomeWidget= tk.Button(pai, opção, ….)
1.1.3. Opções do widget:
propriedade descrição
activebackground Cor de fundo quando o mouse está
sobre o widget
activeforeground Cor de frente quando o mouse está
sobre o widget
anchor
Controla a posição do texto dentro
do widget. O valor default é o centro
(tk.CENTER), mas pode-se escolher
1
Opções do widget:
propriedade descrição
entre 9 posições, conforme mostra a
figura acima
bg ou background Cor de fundo da área do widget
bitmap Nome da imagem que será
apresentada em lugar do texto
do botão. Pode assumir os
valores: 'error', 'gray75', 'gray50',
'gray25', 'gray12', 'hourglass', 'info',
'questhead', 'question', e 'warning
bd ou borderwidth Largura da borda em torno do widget,
em pixels. Valor default 2.
command Função ou método a ser chamado
quando o botão é pressionado
cursor Cursor que aparece quando o mouse
está sobre o widget. Existem mais de
70 cursores disponíveis. Veja tabela
de cursores no capítulo "cursores".
default O default é tk.normal. Para desabilitar
o botão utilize tk.DISABLED
disabledforeground Cor de frente do widget quando o
mesmo está no estado tk.DISABLED
font Epecifica o font a ser utilizado no
texto do widget. Para uma lista dos
fontes veja o capítulo "Fonts no
TkInter"
fg ou foreground Especifica a cor do texto. Para uma
lista de cores veja o capítulo "Cores
no Tkinter"
height Altura do botão em lines se contem
um texto, e em pixels se for uma
imagem.
2
Opções do widget:
propriedade descrição
highlightbackground Cor quando o widget não está
salientado
highlightcolor Cor quando o widget está no foco
highlightthickness Expessura quando o widget está em
foco
image Especifica a imagem a ser
apresentada ao invés do texto. Veja o
capítulo "Imagens"
justify Especifica o alinhamento das
linhas de texto. Pode assumir um
dos seguintes valores: tk.LEFT,
tk.CENTER (default), tk.RIGHT
padx Adiciona espaço (pixels) extra a
direita e a esquerda do texto. Default
1 pixel.
pady Adiciona espaço (pixels) acima e
abaixo do texto. Default 1 pixel
relief Especifica a aparência da borda
decorativa em torno do widgets. O
defaul é tk.FLAT. Pode assumir os
valores tk_RAISED, tk_SUNKEN,
tk_GROOVE ou tk_RIDGE
repeatdelay Veja repeatinterval, logo a seguir
repeatinterval Normalmente, quando o usuário
libera o botão do mouse qdo sobre o
botão, é disparado um evento. Para
provocar disparos contínuo sempre
que o botão do mouse é mantido
pressionado , faça esta propriedade
igual ao intervalo em milisegundos
desejado para a geração do evento.
3
Opções do widget:
propriedade descrição
repeatdelay irá corresponder ao
intervalo para o primeiro disparo.
state A condição default é tk.NORMAL.
Se feita igual a tk.DISABLE o widget
não responderá ao mouse. Quando o
mouse está sobre o objeto o estado
passa a tk.ACTIVE.
takefocus Em condiçoes normais o Labeltton
pode ficar no foco em função do uso
do teclado. Se se você deseja que
isto NÂO ocorra, faça takefocus=0.
text O texto aqui especificado irá ser
apresentado no widget. Para pular de
linha use o caracter '\n'.
textvariable Associa o texto do widget a uma
variavel do tipo StringVar.
underline Sublinha o caracter especificado. O
parâmetro fornecido é a posição do
caracter no texto, iniciando em 0. O
valor default é -1, que significa sem
sublinhar.
width Largura do widget em caracteres se o
label é um texto, ou pixels se for uma
imagem.
wraplength Se o valor for um número positivo,
este será utilizado como largura do
widget. Pode estar nas unidades
c (centimetros), i (polegadas), m
(milimetros) ou p (1/72 de polegada).
4
Entry
1.2. Entry
1.2.1. Para que é utilizado:
Os widgets Entry são utilizados para criar um campo onde o usuário pode
escrever ou ler uma linha única de texto.
1.2.2. Como é criado:
nomeWidget= tk.Entry(pai, opção, ….)
1.2.3. Opções do widget:
Algumas definições importantes: * Um texto inicia sempre no índice 0 *
Tkinter.END apponta para a posição logo pós o fim de texto * Tkinter.INSERT
aponta para a posição de inserção do caracter * Tkinter.ANCHOR aponta para o
primeiro caracter da seleção, se parte do texto estiver selecionado.
propriedade descrição
bg ou background Cor de fundo da área do widget.
Default lightgray
bd ou borderwidth Largura da borda em torno do widget,
em pixels. Valor default 2.
cursor Cursor que aparece quando o mouse
está sobre o widget. Existem mais de
70 cursores disponíveis. Veja tabela
de cursores no capítulo "cursores".
disabledbackground Cor de fundo do widget quando o
mesmo está no estado tk.DISABLED
disabledforeground Cor de frente do widget quando o
mesmo está no estado tk.DISABLED
exportselection O texto selecionado é
automaticamente exportado para o
clipboard como default. Fazendo esta
propriedade = 0 cancelamos esta
ação.
5
Opções do widget:
propriedade descrição
fg ou foreground Especifica a cor do texto. Para uma
lista de cores veja o capítulo "Cores
no Tkinter"
font Font utilizada no campo do widget
highlightbackground Cor quando o widget não está
salientado
highlightcolor Cor quando o widget está no foco
highlightthickness Expessura quando o widget está em
foco
insertbackground O cursor de inserção de texto é
por default preto. Para alterar a cor
configure esta propriedade para a cor
desejada
insertborderwidth O cursor de inserção de texto é um
retangulo por default. Alterando esta
propriedade voce obtem efeitos
diferenciados.
insertofftime Estabelece o tempo desligado do
cursor de inserção. O valor default é
300 ms. Se feita iqual a zero o cursor
não pisca
insertontime Estabelece o tempo ligado do cursor
de inserção. Default é de 600 ms.
insertwidth A largura do cursor de inserção
default é de 2 pixels. Atuando sobre
esta propriedade voce modifica para
qualquer valor desejado
justify Especifica o alinhamento das
linhas de texto. Pode assumir um
dos seguintes valores: tk.LEFT,
tk.CENTER (default), tk.RIGHT.
default tk.left
6
Opções do widget:
propriedade descrição
readonlybackground Cor de fundo quando o widget está
no estado 'readonly'.
relief Especifica a aparência da borda
decorativa em torno do widgets. O
defaul é tk.FLAT. Pode assumir os
valores tk_RAISED, tk_SUNKEN,
tk_GROOVE ou tk_RIDGE
selectbackground Cor de fundo para a parte
selecionada do fundo.
selectborderwidth Largura da borda sobre o texto
selecionado. Default 1 pixel.
selectforeground Cor da frente do texto selecionado.
show Para substituir os caracteres
digitados no campo de entrada por "",
entrada de senhas, faça show=.
state A condição default é tk.NORMAL.
Se feita igual a tk.DISABLE o widget
não responderá. Quando o mouse
está sobre o objeto o estado passa
a tk.ACTIVE. O estado "disabled"
protege o widget de novas inserções
de texto mas permite a cópia e
seleção.
takefocus Em condiçoes normais o widget pode
ficar no foco em função do uso do
teclado. Se se você deseja que isto
NÂO ocorra, faça takefocus=0.
text O texto aqui especificado irá ser
apresentado no widget. Para pular de
linha use o caracter '\n'.
textvariable Associa o texto do widget a uma
variavel do tipo StringVar.
7
Opções do widget:
propriedade descrição
validatecommand Implementa uma função que valida
o texto do widget. Veja o capítulo
específico de como fazer isto.
width Largura do widget em caracteres . O
default é 20.
xscrollcommand Use esta propriedade para o caso de
entradas maiores do que o tamanho
da tela. Veja o capítulo específico
para saber como fazer isto.
8
Label
1.3. Label
1.3.1. Para que é utilizado:
Os widgets Label são utilizados para apresentar na tela um texto (uma ou mais
linhas) ou uma imagem.
1.3.2. Como é criado:
nomeWidget= tk.Label(pai, opção, ….)
1.3.3. Opções do widget:
propriedade descrição
activebackground Cor de fundo quando o mouse está
sobre o widget
activeforeground Cor de frente quando o mouse está
sobre o widget
anchor
Controla a posição do texto dentro
do widget. O valor default é o centro
(tk.CENTER), mas pode-se escolher
entre 9 posições, conforme mostra a
figura acima.
bg ou background Cor de fundo da área do label
bitmap endereço do arquivo com a imagem a
ser apresentada
bd ou borderwidth Largura da borda em torno do widget,
em pixels. Valor default 2.
compound Quando usamos texto e imagens
simultanemante no Label,
compond especifica a posição
da imagem em relação ao
9
Opções do widget:
propriedade descrição
texto. Os valores possíveis são
tk.LEFT,tk.RIGHT,tk.CENTER,tk.BOTTOM,
ou tk.TOP, posicionando o gráfico
à esquerda, à direita, no centro,
por baixo e por cima do texto
respectivamente.
cursor Cursor que aparece quando o mouse
está sobre o Label. Existem mais de
70 cursores disponíveis. Veja tabela
de cursores no capítulo "cursores".
disabledforeground Cor de frente do widget quando o
mesmo está no estado tk.DISABLED
font Se o existe texto (opções text ou
textvariable) esta propriedade
especifica o font a ser utilizado. Para
uma lista dos fontes veja o capítulo
"Fonts no TkInter"
fg ou foreground Especifica a cor do texto. Para uma
lista de cores veja o capítulo "Cores
no Tkinter"
height Altura do label em lines, não em
pixels. Se esta opção não estiver
definida, o texto irá ocupar todo o
espaço disponivel no label.
highlightbackground Cor quando o label não está
salientado
highlightcolor Cor quando o label está no foco
highlightthickness Expessura quando o label está em
foco
image Especifica a imagem a ser
apresentada. Veja o capítulo
"Imagens"
10
Opções do widget:
propriedade descrição
justify Especifica o alinhamento das
linhas de texto. Pode assumir um
dos seguintes valores: tk.LEFT,
tk.CENTER (default), tk.RIGHT
padx Adiciona espaço (pixels) extra a
direita e a esquerda do widget.
Default 1 pixel.
pady Adiciona espaço (pixels) acima e
abaixo do widget. Default 1 pixel
relief Especifica a aparência da borda
decorativa em torno dos widgets. O
defaul é tk.FLAT. Pode assumir os
valores tk_RAISED, tk_SUNKEN,
tk_GROOVE ou tk_RIDGE
state A condição default é tk.NORMAL.
Se feita igual a tk.DISABLE o widget
não responderá ao mouse. Quando o
mouse está sobre o objeto o estado
passa a tk.ACTIVE.
takefocus Em condiçoes normais o Label
não assume o foco, mas se você
deseja que isto possa ocorrer, faça
takefocus=1.
text O texto aqui especificado irá ser
apresentado no campo do label. Para
pular de linha use o caracter '\n'.
textvariable Associa o texto do label a uma
variavel do tipo StringVar.
underline Sublinha o caracter especificado. O
parâmetro fornecido é a posição do
caracter no texto, iniciando em 0. O
valor default é -1, que significa sem
sublinhar.
11
Opções do widget:
propriedade descrição
width Largura do label em caracteres, não
em pixels. Sd não for especificado, o
label é ajustado para o comprimento
do seu conteúdo.
wraplength O número associado a esta
propriedade corresponderá ao
número máximo de caracteres por
linha. O valor default é zero, que
significa que a linha somete será
quebrada quando ocorrer um '\n'
12
Menu
1.4. Menu
1.4.1. Para que é utilizado:
Os widgets Menu apresentam uma lista de escolhas para o usuário, e disparam
as ações correspondentes a seleção realizada.
As opções podem ser das seguintes formas:
• Um comando único, seja na forma de uma palavra ou de uma figura
• Uma outro menu com diversas opções
• Um checkbutton (veja o capítulo sobre widgets checkbutton).
• Um grupo de radiobuttons. Veja o capítulo sobre radiobuttons
1.4.2. Como é criado:
nomeWidget= tk.Menu(pai, opção, ….)
1.4.3. Opções do widget:
propriedade descrição
activebackground Cor de fundo quando o mouse está
sobre o widget
activeborderwidth Especifica a largura do traço sobre a
seleção quando o mouse está sobre
ela. Default 1 pixel. Specifies the
width of a border drawn around a
choice when it is under the mouse.
Default is 1 pixel. For possible values,
see Section 5.1, “Dimensions”.
activeforeground Cor de frente quando o mouse está
sobre o widget
bg ou background Cor de fundo da área do widget
quando o mouse não está sobre ele.
Default lightgray
13
Opções do widget:
propriedade descrição
bd ou borderwidth Largura da borda em torno do widget,
em pixels. Valor default 2.
cursor Cursor que aparece quando o mouse
está sobre o widget. Existem mais de
70 cursores disponíveis. Veja tabela
de cursores no capítulo "cursores".
disabledforeground Cor de frente do widget quando o
mesmo está no estado tk.DISABLED
font Font utilizada no campo do widget
fg ou foreground Especifica a cor do texto quando o
mouse não está sobre o widget. Para
uma lista de cores veja o capítulo
"Cores no Tkinter"
postcommand Associe aqui o procedimento a ser
executado sempre que o menu for
acionado.
relief Especifica a aparência da borda
decorativa em torno dos widgets. O
defaul é tk.FLAT. Pode assumir os
valores tk_RAISED, tk_SUNKEN,
tk_GROOVE ou tk_RIDGE
selectcolor Especifica a cor dos checkbuttons
e radiobuttons quando estão
selecionados.
tearoff Normalmente, um menu pode ser
destacado. A primeira posição é
ocupada pelo elemento destacador.
Se tearoff=0, o menu não terá
esta funcionalidade de poder ser
destacado.
tearoffcommand Se você deseja que o seu programa
seja avisado de que o usuário clicou
14
Opções do widget:
propriedade descrição
sobre o elemento destacador, faça
esta propriedade igual a função a ser
executada quando isto ocorrer.
title Normalmente o título de umma
janela de um menu destacado será
o mesmo texto do menubutton ou
cascade que direcionou para este
menu. Para usar um título diferente
faça esta propriedade igual ao título
que você deseja.
15
Menubutton
1.5. Menubutton
1.5.1. Para que é utilizado:
O widget menubutton é a parte do menu que permanece na tela todo o
tempo. Cada menubutton tem associado a ele um ou mais widgets menu que
correspondem as opções que o menubuttom oferece.
1.5.2. Como é criado:
nomeWidget= tk.Menubutton(pai, opção, ….)
1.5.3. Opções do widget:
propriedade descrição
activebackground Cor de fundo quando o mouse está
sobre o widget
activeforeground Cor de frente quando o mouse está
sobre o widget
anchor
Controla a posição do texto dentro
do widget. O valor default é o centro
(tk.CENTER), mas pode-se escolher
entre 9 posições, conforme mostra a
figura acima.
bg ou background Cor de fundo da área do widget
quando o mouse não está sobre ele.
Default lightgray
bd ou borderwidth Largura da borda em torno do widget,
em pixels. Valor default 2.
bitmap endereço do arquivo com a imagem a
ser apresentada
16
Opções do widget:
propriedade descrição
compound Quando usamos texto e imagens
simultanemante no widget,
compond especifica a posição
da imagem em relação ao
texto. Os valores possíveis são
tk.LEFT,tk.RIGHT,tk.CENTER,tk.BOTTOM,
ou tk.TOP, posicionando o gráfico
à esquerda, à direita, no centro,
por baixo e por cima do texto
respectivamente.
cursor Cursor que aparece quando o mouse
está sobre o widget. Existem mais de
70 cursores disponíveis. Veja tabela
de cursores no capítulo "cursores".
direction Normalmente o menu aparece
abaixo do menubuttom. Para
aparecer a esquerda, faça direction
=tk.LEFT, para a direita direction
=tk.RIGHT, para posicionar o menu
acima do munubuttom acima faça
direction='above'
disabledbackground Cor de fundo do widget quando o
mesmo está no estado tk.DISABLED
disabledforeground Cor de frente do widget quando o
mesmo está no estado tk.DISABLED
fg ou foreground Especifica a cor do texto quando o
mouse não está sobre o widget. Para
uma lista de cores veja o capítulo
"Cores no Tkinter"
font Font utilizada no campo do widget
height Altura do widget em lines, não em
pixels. Se esta opção não estiver
17
Opções do widget:
propriedade descrição
definida, o texto irá ocupar todo o
espaço disponivel no widget.
highlightbackground Cor quando o widget não está
salientado
highlightcolor Cor quando o widget está no foco
highlightthickness Expessura quando o widget está em
foco
image Especifica a imagem a ser
apresentada. Veja o capítulo
"Imagens"
justify Especifica o alinhamento das
linhas de texto. Pode assumir um
dos seguintes valores: tk.LEFT,
tk.CENTER (default), tk.RIGHT
menu Para associar o menubutton com
um conjunto de escolhas, faça esta
opção igual ao widget qeu contem o
conjunto de opções.
padx Adiciona espaço (pixels) extra a
direita e a esquerda do widget.
Default 1 pixel.
pady Adiciona espaço (pixels) acima e
abaixo do widget. Default 1 pixel
relief Especifica a aparência da borda
decorativa em torno dos widgets. O
defaul é tk.FLAT. Pode assumir os
valores tk_RAISED, tk_SUNKEN,
tk_GROOVE ou tk_RIDGE
state A condição default é tk.NORMAL.
Se feita igual a tk.DISABLE o widget
não responderá. Quando o mouse
está sobre o objeto o estado passa
18
Opções do widget:
propriedade descrição
a tk.ACTIVE. O estado "disabled"
protege o widget de novas inserções
de texto mas permite a cópia e
seleção.
takefocus Em condiçoes normais o widget pode
ficar no foco em função do uso do
teclado. Se se você deseja que isto
NÂO ocorra, faça takefocus=0.
text O texto aqui especificado irá ser
apresentado no widget. Para pular de
linha use o caracter '\n'.
textvariable Associa o texto do widget a uma
variavel do tipo StringVar.
underline Sublinha o caracter especificado. O
parâmetro fornecido é a posição do
caracter no texto, iniciando em 0. O
valor default é -1, que significa sem
sublinhar.
width Largura do widget em caracteres . O
default é 20.
wraplength Normalmente, a linha de texto não é
partida. Voce pode utilizar esta opção
para especificar o número máximo de
caracteres por linha
19
20