Janela Tkinter

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±yLinguagem de código:  Python  ( python )
Geometria da janela Tkinter

Nesta especificação:

  • O widthrepresenta a largura da janela em pixels.
  • O heightrepresenta a altura da janela em pixels.
  • O xparâmetro denota a posição horizontal da janela. Por exemplo, um valor de +50significa que a borda esquerda da janela deve ser posicionada a 50 pixels da borda esquerda da tela. Por outro lado, um valor -50indica que a borda direita da janela deve estar a 50 pixels da borda direita da tela.
  • O yparâmetro denota a posição vertical da janela. Por exemplo, um valor +50significa que a borda superior da janela deve ser posicionada 50 pixels abaixo da parte superior da tela. Por outro lado, um valor -50indica 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 600x400e 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()e winfo_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 -topmostatributo 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 .icoformato. Se você tiver a imagem em outros formatos como pngou jpg, poderá convertê-la para o .icoformato. 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(FalseFalse)
root.iconbitmap('./assets/pythontutorial.ico')

root.mainloop()Linguagem de código:  PHP  ( php )

Saída:

Janela Tkinter - ícone personalizado

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()e lower()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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *