GUI Python - tkinter
Python oferece várias opções para o desenvolvimento de GUI (Graphical User Interface). De todos os métodos de GUI, tkinter é o método mais comumente usado. É uma interface Python padrão para o kit de ferramentas Tk GUI fornecido com Python. Python com tkinter é a maneira mais rápida e fácil de criar aplicativos GUI. Criar uma GUI usando tkinter é uma tarefa fácil.
Para criar um aplicativo tkinter:
- Importando o módulo - tkinter
- Crie a janela principal (container)
- Adicione qualquer número de widgets à janela principal
- Aplique o evento Trigger nos widgets.
Importar tkinter é o mesmo que importar qualquer outro módulo no código Python. Observe que o nome do módulo em Python 2.x é 'Tkinter' e em Python 3.x é 'tkinter'.
importar tkinter
Existem dois métodos principais usados que o usuário precisa se lembrar ao criar o aplicativo Python com GUI.
- Tk (screenName = None, baseName = None, className = 'Tk', useTk = 1): Para criar uma janela principal, tkinter oferece um método 'Tk (screenName = None, baseName = None, className =' Tk ', useTk = 1) '. Para alterar o nome da janela, você pode alterar o className para o desejado. O código básico usado para criar a janela principal do aplicativo é:
m = tkinter.Tk() onde m é o nome do objeto da janela principal
- mainloop(): Existe um método conhecido pelo nome mainloop() que é usado quando seu aplicativo está pronto para ser executado. mainloop() é um loop infinito usado para executar o aplicativo, esperar que um evento ocorra e processar o evento, desde que a janela não esteja fechada.
m.mainloop()
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigoimport
tkinter
m
=
tkinter.Tk()
m.mainloop()
chevron_rightfilter_none
O tkinter também oferece acesso à configuração geométrica dos widgets que pode organizar os widgets nas janelas pai. Existem basicamente três classes de classes do gerenciador de geometria.
- Método pack(): organiza os widgets em blocos antes de colocá-los no widget pai.
- Método grid(): Organiza os widgets em grade (estrutura semelhante a uma tabela) antes de colocá-los no widget pai.
- Método place(): Organiza os widgets colocando-os em posições específicas dirigidas pelo programador.
Existem vários widgets que você pode colocar em seu aplicativo tkinter. Alguns dos principais widgets são explicados abaixo:
- Botão : para adicionar um botão em seu aplicativo, este widget é usado.
A sintaxe geral é:w = Botão (mestre, opção = valor)
master é o parâmetro usado para representar a janela pai.
Existem várias opções que são usadas para alterar o formato dos botões. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.- activebackground : para definir a cor de fundo quando o botão está sob o cursor.
- activeforeground : para definir a cor do primeiro plano quando o botão está sob o cursor.
- bg : para definir a cor de fundo normal.
- comando : para chamar uma função.
- fonte : para definir a fonte no rótulo do botão.
- imagem : para definir a imagem no botão.
- largura : para definir a largura do botão.
- altura : para definir a altura do botão.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigoimport
tkinter as tk
r
=
tk.Tk()
r.title(
'Counting Seconds'
)
button
=
tk.Button(r, text
=
'Stop'
, width
=
25
, command
=
r.destroy)
button.pack()
r.mainloop()
chevron_rightfilter_noneResultado:
- Tela: é usada para desenhar imagens e outros layouts complexos, como gráficos, texto e widgets.
A sintaxe geral é:w = Canvas (mestre, opção = valor) master é o parâmetro usado para representar a janela pai.
Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.
- bd : para definir a largura da borda em pixels.
- bg : para definir a cor de fundo normal.
- cursor : para definir o cursor usado na tela.
- destaque cor : para definir a cor mostrada no destaque do foco.
- largura : para definir a largura do widget.
- altura : para definir a altura do widget.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
master
=
Tk()
w
=
Canvas(master, width
=
40
, height
=
60
)
w.pack()
canvas_height
=
20
canvas_width
=
200
y
=
int
(canvas_height
/
2
)
w.create_line(
0
, y, canvas_width, y )
mainloop()
chevron_rightfilter_noneResultado:
- CheckButton: Para selecionar qualquer número de opções, exibindo uma série de opções para um usuário como botões de alternância. A sintaxe geral é:
w = CheckButton (mestre, opção = valor)
Existem várias opções que são usadas para alterar o formato deste widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.
- Título : para definir o título do widget.
- activebackground : para definir a cor de fundo quando o widget está sob o cursor.
- activeforeground : para definir a cor do primeiro plano quando o widget está sob o cursor.
- bg : para definir a esteganografia normal
Pausa
Codigo secreto:
Anexar um arquivo: nd color.
- comando : para chamar uma função.
- fonte : para definir a fonte no rótulo do botão.
- imagem : para definir a imagem no widget.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
master
=
Tk()
var1
=
IntVar()
Checkbutton(master, text
=
'male'
, variable
=
var1).grid(row
=
0
, sticky
=
W)
var2
=
IntVar()
Checkbutton(master, text
=
'female'
, variable
=
var2).grid(row
=
1
, sticky
=
W)
mainloop()
chevron_rightfilter_noneResultado:
- Entrada: É usado para inserir a entrada de texto de uma linha do usuário. Para entrada de texto de várias linhas, o widget de Texto é usado.
A sintaxe geral é:
w = entrada (mestre, opção = valor)
master é o parâmetro usado para representar a janela pai.
Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.- bd : para definir a largura da borda em pixels.
- bg : para definir a cor de fundo normal.
- cursor : para definir o cursor usado.
- comando : para chamar uma função.
- destaque cor : para definir a cor mostrada no destaque do foco.
- largura : para definir a largura do botão.
- altura : para definir a altura do botão.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
master
=
Tk()
Label(master, text
=
'First Name'
).grid(row
=
0
)
Label(master, text
=
'Last Name'
).grid(row
=
1
)
e1
=
Entry(master)
e2
=
Entry(master)
e1.grid(row
=
0
, column
=
1
)
e2.grid(row
=
1
, column
=
1
)
mainloop()
chevron_rightfilter_noneResultado:
- Frame: atua como um recipiente para armazenar os widgets. É usado para agrupar e organizar os widgets. A sintaxe geral é:
w = Frame (mestre, opção = valor) master é o parâmetro usado para representar a janela pai.
Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.
- highlightcolor : para definir a cor do destaque de foco quando o widget precisa ser focalizado.
- bd : para definir a largura da borda em pixels.
- bg : para definir a cor de fundo normal.
- cursor : para definir o cursor usado.
- largura : para definir a largura do widget.
- altura : para definir a altura do widget.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
root
=
Tk()
frame
=
Frame(root)
frame.pack()
bottomframe
=
Frame(root)
bottomframe.pack( side
=
BOTTOM )
redbutton
=
Button(frame, text
=
'Red'
, fg
=
'red'
)
redbutton.pack( side
=
LEFT)
greenbutton
=
Button(frame, text
=
'Brown'
, fg
=
'brown'
)
greenbutton.pack( side
=
LEFT )
bluebutton
=
Button(frame, text
=
'Blue'
, fg
=
'blue'
)
bluebutton.pack( side
=
LEFT )
blackbutton
=
Button(bottomframe, text
=
'Black'
, fg
=
'black'
)
blackbutton.pack( side
=
BOTTOM)
root.mainloop()
chevron_rightfilter_noneResultado:
- Etiqueta : refere-se à caixa de exibição onde você pode colocar qualquer texto ou imagem que pode ser atualizado a qualquer momento conforme o código.
A sintaxe geral é:w = Rótulo (mestre, opção = valor) master é o parâmetro usado para representar a janela pai.
Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.
- bg : para definir a cor de fundo normal.
- bg para definir a cor de fundo normal.
- comando : para chamar uma função.
- fonte : para definir a fonte no rótulo do botão.
- imagem : para definir a imagem no botão.
- largura : para definir a largura do botão.
- height ”para definir a altura do botão.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
root
=
Tk()
w
=
Label(root, text
=
'GeeksForGeeks.org!'
)
w.pack()
root.mainloop()
chevron_rightfilter_noneResultado:
- Caixa de listagem : oferece ao usuário uma lista da qual o usuário pode aceitar qualquer número de opções.
A sintaxe geral é:w = caixa de listagem (mestre, opção = valor) master é o parâmetro usado para representar a janela pai.
Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.
- highlightcolor : para definir a cor do destaque de foco quando o widget precisa ser focalizado.
- bg : para definir a cor de fundo normal.
- bd : para definir a largura da borda em pixels.
- fonte : para definir a fonte no rótulo do botão.
- imagem : para definir a imagem no widget.
- largura : para definir a largura do widget.
- altura : para definir a altura do widget.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
top
=
Tk()
Lb
=
Listbox(top)
Lb.insert(
1
,
'Python'
)
Lb.insert(
2
,
'Java'
)
Lb.insert(
3
,
'C++'
)
Lb.insert(
4
,
'Any other'
)
Lb.pack()
top.mainloop()
chevron_rightfilter_noneResultado:
- Botão de menu : É uma parte do menu superior que fica na janela o tempo todo. Cada botão de menu tem sua própria funcionalidade. A sintaxe geral é:
w = MenuButton (mestre, opção = valor) master é o parâmetro usado para representar a janela pai.
Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.
- activebackground : Para definir o fundo quando o mouse está sobre o widget.
- activeforeground : Para definir o primeiro plano quando o mouse estiver sobre o widget.
- bg : para definir a cor de fundo normal.
- bd : para definir o tamanho da borda ao redor do indicador.
- cursor : Para aparecer o cursor ao passar o mouse sobre o botão do menu.
- imagem : para definir a imagem no widget.
- largura : para definir a largura do widget.
- altura : para definir a altura do widget.
- highlightcolor : para definir a cor do destaque de foco quando o widget precisa ser focalizado.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
top
=
Tk()
mb
=
Menubutton ( top, text
=
"GfG")
mb.grid()
mb.menu
=
Menu ( mb, tearoff
=
0
)
mb["menu"]
=
mb.menu
cVar
=
IntVar()
aVar
=
IntVar()
mb.menu.add_checkbutton ( label
=
'Contact'
, variable
=
cVar )
mb.menu.add_checkbutton ( label
=
'About'
, variable
=
aVar )
mb.pack()
top.mainloop()
chevron_rightfilter_noneResultado:
- Menu : serve para criar todos os tipos de menus utilizados pela aplicação.
A sintaxe geral é:w = Menu (mestre, opção = valor) master é o parâmetro usado para representar a janela pai.
Existem várias opções que são usadas para alterar o formato deste widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.
- título : Para definir o título do widget.
- activebackground : para definir a cor de fundo quando o widget está sob o cursor.
- activeforeground : para definir a cor do primeiro plano quando o widget está sob o cursor.
- bg : para definir a cor de fundo normal.
- comando : para chamar uma função.
- fonte : para definir a fonte no rótulo do botão.
- imagem : para definir a imagem no widget.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
root
=
Tk()
menu
=
Menu(root)
root.config(menu
=
menu)
filemenu
=
Menu(menu)
menu.add_cascade(label
=
'File'
, menu
=
filemenu)
filemenu.add_command(label
=
'New'
)
filemenu.add_command(label
=
'Open...'
)
filemenu.add_separator()
filemenu.add_command(label
=
'Exit'
, command
=
root.quit)
helpmenu
=
Menu(menu)
menu.add_cascade(label
=
'Help'
, menu
=
helpmenu)
helpmenu.add_command(label
=
'About'
)
mainloop()
chevron_rightfilter_noneResultado:
- Mensagem : Refere-se ao texto multilinha e não editável. Funciona da mesma forma que Label.
A sintaxe geral é:
w = Mensagem (mestre, opção = valor) master é o parâmetro usado para representar a janela pai.
Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.
- bd : para definir a borda ao redor do indicador.
- bg : para definir a cor de fundo normal.
- fonte : para definir a fonte no rótulo do botão.
- imagem : para definir a imagem no widget.
- largura : para definir a largura do widget.
- altura : para definir a altura do widget.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
main
=
Tk()
ourMessage
=
'This is our Message'
messageVar
=
Message(main, text
=
ourMessage)
messageVar.config(bg
=
'lightgreen'
)
messageVar.pack( )
main.mainloop( )
chevron_rightfilter_noneResultado:
- RadioButton: É usado para oferecer opção de múltipla escolha ao usuário. Ele oferece várias opções ao usuário e o usuário deve escolher uma opção.
A sintaxe geral é:w = RadioButton (mestre, opção = valor)
Existem várias opções que são usadas para alterar o formato deste widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.
- activebackground : para definir a cor de fundo quando o widget está sob o cursor.
- activeforeground : para definir a cor do primeiro plano quando o widget está sob o cursor.
- bg : para definir a cor de fundo normal.
- comando : para chamar uma função.
- fonte : para definir a fonte no rótulo do botão.
- imagem : para definir a imagem no widget.
- largura : para definir a largura do rótulo em caracteres.
- altura : para definir a altura da etiqueta em caracteres.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
root
=
Tk()
v
=
IntVar()
Radiobutton(root, text
=
'GfG'
, variable
=
v, value
=
1
).pack(anchor
=
W)
Radiobutton(root, text
=
'MIT'
, variable
=
v, value
=
2
).pack(anchor
=
W)
mainloop()
chevron_rightfilter_noneResultado:
- Escala: é usado para fornecer um controle deslizante gráfico que permite selecionar qualquer valor daquela escala. A sintaxe geral é:
w = Escala (mestre, opção = valor) master é o parâmetro usado para representar a janela pai.
Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.
- cursor : Para alterar o padrão do cursor quando o mouse está sobre o widget.
- activebackground : Para definir o fundo do widget quando o mouse está sobre o widget.
- bg : para definir a cor de fundo normal.
- orientar : Configure para HORIZONTAL ou VERTICAL de acordo com a necessidade.
- from_ : Para definir o valor de uma extremidade do intervalo da escala.
- para : Para definir o valor da outra extremidade do intervalo da escala.
- imagem : para definir a imagem no widget.
- largura : para definir a largura do widget.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
master
=
Tk()
w
=
Scale(master, from_
=
0
, to
=
42
)
w.pack()
w
=
Scale(master, from_
=
0
, to
=
200
, orient
=
HORIZONTAL)
w.pack()
mainloop()
chevron_rightfilter_noneResultado:
- Barra de rolagem : refere-se ao controlador de slide que será usado para implementar os widgets listados.
A sintaxe geral é:w = barra de rolagem (mestre, opção = valor) master é o parâmetro usado para representar a janela pai.
Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.
- largura : para definir a largura do widget.
- activebackground : Para definir o fundo quando o mouse está sobre o widget.
- bg : para definir a cor de fundo normal.
- bd : para definir o tamanho da borda ao redor do indicador.
- cursor : Para aparecer o cursor ao passar o mouse sobre o botão do menu.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
root
=
Tk()
scrollbar
=
Scrollbar(root)
scrollbar.pack( side
=
RIGHT, fill
=
Y )
mylist
=
Listbox(root, yscrollcommand
=
scrollbar.
set
)
for
line
in
range
(
100
):
mylist.insert(END,
'This is line number'
+
str
(line))
mylist.pack( side
=
LEFT, fill
=
BOTH )
scrollbar.config( command
=
mylist.yview )
mainloop()
chevron_rightfilter_noneResultado:
- Texto: para editar um texto de várias linhas e formatar da maneira como deve ser exibido.
A sintaxe geral é:w = Texto (mestre, opção = valor)
Existem várias opções que são usadas para alterar o formato do texto. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.
- highlightcolor : para definir a cor do destaque de foco quando o widget precisa ser focalizado.
- insertbackground : Para definir o fundo do widget.
- bg : para definir a cor de fundo normal.
- fonte : para definir a fonte no rótulo do botão.
- imagem : para definir a imagem no widget.
- largura : para definir a largura do widget.
- altura : para definir a altura do widget.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
root
=
Tk()
T
=
Text(root, height
=
2
, width
=
30
)
T.pack()
T.insert(END,
'GeeksforGeeks\nBEST WEBSITE\n'
)
mainloop()
chevron_rightfilter_noneResultado:
- TopLevel: Este widget é controlado diretamente pelo gerenciador de janelas. Não precisa de nenhuma janela pai para trabalhar. A sintaxe geral é:
w = TopLevel (mestre, opção = valor)
Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.
- bg : para definir a cor de fundo normal.
- bd : para definir o tamanho da borda ao redor do indicador.
- cursor : Para aparecer o cursor ao passar o mouse sobre o botão do menu.
- largura : para definir a largura do widget.
- altura : para definir a altura do widget.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
root
=
Tk()
root.title(
'GfG'
)
top
=
Toplevel()
top.title(
'Python'
)
top.mainloop()
chevron_rightfilter_noneResultado:
- SpinBox: É uma entrada do widget 'Entrada'. Aqui, o valor pode ser inserido selecionando um valor fixo de números. A sintaxe geral é:
w = SpinBox (mestre, opção = valor)
Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.
- bg : para definir a cor de fundo normal.
- bd : para definir o tamanho da borda ao redor do indicador.
- cursor : Para aparecer o cursor ao passar o mouse sobre o botão do menu.
- comando : Para chamar uma função.
- largura : para definir a largura do widget.
- activebackground : Para definir o fundo quando o mouse está sobre o widget.
- disabledbackground : Para desativar o fundo quando o mouse está sobre o widget.
- from_ : Para definir o valor de uma extremidade do intervalo.
- para : Para definir o valor da outra extremidade do intervalo.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
master
=
Tk()
w
=
Spinbox(master, from_
=
0
, to
=
10
)
w.pack()
mainloop()
chevron_rightfilter_noneResultado:
- PannedWindow É um widget de contêiner que é usado para lidar com o número de painéis dispostos nele. A sintaxe geral é:
w = PannedWindow (mestre, opção = valor)
master é o parâmetro usado para representar a janela pai.
Existem várias opções que são usadas para alterar o formato do widget. O número de opções pode ser passado como parâmetros separados por vírgulas. Alguns deles estão listados abaixo.- bg : para definir a cor de fundo normal.
- bd : para definir o tamanho da borda ao redor do indicador.
- cursor : Para aparecer o cursor ao passar o mouse sobre o botão do menu.
- largura : para definir a largura do widget.
- altura : para definir a altura do widget.
filter_noneeditar
fecharplay_arrow
link
brilho_4
códigofrom
tkinter
import
*
m1
=
PanedWindow()
m1.pack(fill
=
BOTH, expand
=
1
)
left
=
Entry(m1, bd
=
5
)
m1.add(left)
m2
=
PanedWindow(m1, orient
=
VERTICAL)
m1.add(m2)
top
=
Scale( m2, orient
=
HORIZONTAL)
m2.add(top)
mainloop()
chevron_rightfilter_noneResultado:
Este artigo é uma contribuição de Rishabh Bansal . Se você gosta de GeeksforGeeks e gostaria de contribuir, você também pode escrever um artigo usando contribute.geeksforgeeks.org ou enviar o seu artigo para contribute@geeksforgeeks.org. Veja o seu artigo que aparece na página principal do GeeksforGeeks e ajude outros Geeks.
Escreva comentários se encontrar algo incorreto ou se quiser compartilhar mais informações sobre o tópico discutido acima.
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva