Resumo : neste tutorial você aprenderá como manipular vários atributos de uma janela do Tkinter.
Vamos começar com um programa simples que consiste em uma janela:
import tkinter as tk
root = tk.Tk()
root.mainloop()
Linguagem de código: Python ( python )
Saída:
A janela raiz tem um título cujo padrão é tk
. Ele também possui três botões de sistema, incluindo Minimizar, Maximizar e Fechar.
Vamos aprender como alterar os atributos da janela raiz.
Alterando o título da janela
Para alterar o título da janela, você usa o title()
método como este:
window.title(new_title)
Linguagem de código: Python ( python )
Por exemplo, o seguinte altera o título da janela raiz para 'Tkinter Window Demo'
:
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window Demo')
root.mainloop()
Linguagem de código: Python ( python )
Saída:
Para obter o título atual de uma janela, você usa o title()
método sem argumento:
title = window.title()
Linguagem de código: Python ( python )
Alterando o tamanho e a localização da janela
No Tkinter, a posição e o tamanho de uma janela na tela são determinados por sua geometria .
O seguinte mostra a especificação da geometria:
widthxheight±x±y
Linguagem de código: Python ( python )
Nesta especificação:
- O
width
representa a largura da janela em pixels. - O
height
representa a altura da janela em pixels. - O
x
parâmetro denota a posição horizontal da janela. Por exemplo, um valor de+50
significa que a borda esquerda da janela deve ser posicionada a 50 pixels da borda esquerda da tela. Por outro lado, um valor-50
indica que a borda direita da janela deve estar a 50 pixels da borda direita da tela. - O
y
parâmetro denota a posição vertical da janela. Por exemplo, um valor+50
significa que a borda superior da janela deve ser posicionada 50 pixels abaixo da parte superior da tela. Por outro lado, um valor-50
indica que a borda inferior da janela deve estar 50 pixels acima da parte inferior da tela.
Para alterar o tamanho e a posição de uma janela, você usa o geometry()
método:
window.geometry(new_geometry)
Linguagem de código: Python ( python )
O exemplo a seguir altera o tamanho da janela 600x400
e a posição da janela para 50 pixels da parte superior e esquerda da tela:
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')
root.mainloop()
Linguagem de código: Python ( python )
Às vezes, você pode querer centralizar a janela na tela. O programa a seguir ilustra como fazer isso:
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window - Center')
window_width = 300
window_height = 200
# get the screen dimension
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
# find the center point
center_x = int(screen_width/2 - window_width / 2)
center_y = int(screen_height/2 - window_height / 2)
# set the position of the window to the center of the screen
root.geometry(f'{window_width}x{window_height}+{center_x}+{center_y}')
root.mainloop()
Linguagem de código: PHP ( php )
Como funciona.
- Primeiro, obtenha a largura e a altura da tela usando os métodos
winfo_screenwidth()
ewinfo_screenheight()
. - Em segundo lugar, calcule a coordenada central com base na largura e altura da tela e da janela.
- Finalmente, defina a geometria da janela raiz usando o
geometry()
método.
Se quiser obter a geometria atual de uma janela, você pode usar o geometry()
método sem fornecer nenhum argumento:
window.geometry()
Linguagem de código: Python ( python )
Redimensionando comportamento
Por padrão, você pode redimensionar a largura e a altura de uma janela. Para evitar que a janela seja redimensionada, você pode usar o resizable()
método:
window.resizable(width,height)
Linguagem de código: Python ( python )
O resizable()
método possui dois parâmetros que especificam se a largura e a altura da janela podem ser redimensionáveis.
A seguir mostramos como fazer a janela com tamanho fixo:
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')
root.resizable(False, False)
root.mainloop()
Linguagem de código: Python ( python )
Saída:
Quando uma janela é redimensionável, você pode especificar os tamanhos mínimo e máximo usando os métodos minsize()
e :maxsize()
window.minsize(min_width, min_height)
window.maxsize(min_height, max_height)
Linguagem de código: Python ( python )
Transparência
O Tkinter permite especificar a transparência de uma janela definindo seu canal alfa variando de 0,0 (totalmente transparente) a 1,0 (totalmente opaco):
window.attributes('-alpha',0.5)
Linguagem de código: Python ( python )
O exemplo a seguir ilustra uma janela com 50% de transparência:
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('600x400+50+50')
root.resizable(False, False)
root.attributes('-alpha', 0.5)
root.mainloop()
Linguagem de código: Python ( python )
Saída:
Ordem de empilhamento de janelas
A ordem da pilha das janelas refere-se à ordem das janelas colocadas na tela, de baixo para cima. A janela mais próxima está no topo da pilha e se sobrepõe à janela inferior.
Para garantir que uma janela esteja sempre no topo da ordem de empilhamento, você pode usar o -topmost
atributo assim:
window.attributes('-topmost', 1)
Linguagem de código: Python ( python )
Para mover uma janela para cima ou para baixo na pilha, você pode usar os métodos lift()
e :lower()
window.lift()
window.lift(another_window)
window.lower()
window.lower(another_window)
Linguagem de código: Python ( python )
O exemplo a seguir coloca a janela raiz sobre todas as outras janelas. Em outras palavras, a janela raiz está sempre no topo:
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('300x200+50+50')
root.resizable(0, 0)
root.attributes('-topmost', 1)
root.mainloop()
Linguagem de código: Python ( python )
Alterando o ícone padrão
A janela do Tkinter exibe um ícone padrão. Para alterar esse ícone padrão, siga estas etapas:
- Prepare uma imagem no
.ico
formato. Se você tiver a imagem em outros formatos comopng
oujpg
, poderá convertê-la para o.ico
formato. Existem muitas ferramentas online que permitem que você faça isso com bastante facilidade. - Coloque o ícone em uma pasta que possa ser acessada pelo programa.
- Chame o
iconbitmap()
método do objeto window.
O programa a seguir ilustra como alterar o ícone padrão para um novo:
import tkinter as tk
root = tk.Tk()
root.title('Tkinter Window Demo')
root.geometry('300x200+50+50')
root.resizable(False, False)
root.iconbitmap('./assets/pythontutorial.ico')
root.mainloop()
Linguagem de código: PHP ( php )
Saída:
Se quiser usar o ícone acima, você pode baixá-lo para o seu computador:
Resumo
- Use o
title()
método para alterar o título da janela. - Use o
geometry()
método para alterar o tamanho e a localização da janela. - Use o
resizable()
método para especificar se uma janela pode ser redimensionada horizontalmente ou verticalmente. - Use
window.attributes('-alpha',0.5)
para definir a transparência da janela. - Use
window.attributes('-topmost', 1)
para deixar a janela sempre no topo. - Use métodos
lift()
elower()
para mover a janela para cima e para baixo na ordem de empilhamento da janela. - Use o
iconbitmap()
método para alterar o ícone padrão da janela.