Tkinter Olá, mundo!

Resumo : neste tutorial você aprenderá passo a passo como desenvolver o programa Tkinter“Hello, World!” programa.

Criando uma janela

O programa a seguir mostra como exibir uma janela na tela:

import tkinter as tk

root = tk.Tk()
root.mainloop()Linguagem de código:  Python  ( python )

Se você executar o programa, verá a seguinte janela:

Como funciona.

Primeiro, importe o tkintermódulo para tko programa:

import tkinter as tkLinguagem de código:  Python  ( python )

Segundo, crie uma instância da tk.Tkclasse que criará a janela do aplicativo:

root = tk.Tk()Linguagem de código:  Python  ( python )

Por convenção, a janela principal do Tkinter é chamada root. Mas você pode usar qualquer outro nome como main.

Terceiro, chame o mainloop()método do objeto da janela principal:

root.mainloop()Linguagem de código:  Python  ( python )

O mainloop()método garante que a janela principal permaneça visível na tela.

Se você não chamar o mainloop()método, a janela principal será exibida e desaparecerá quase instantaneamente – rápido demais para perceber sua aparência.

Além disso, o mainloop()método garante que a janela principal continue a ser exibida e executada até você fechá-la.

Normalmente, em um programa Tkinter, você faz a chamada ao mainloop()método como a última instrução após criar os widgets.

Solução de problemas

O tkintermódulo é um módulo Python integrado. Mas às vezes não é o caso. Por exemplo, no Ubuntu, você pode encontrar o seguinte erro:

ImportError: No module named TkinterLinguagem de código:  JavaScript  ( javascript )

Neste caso, você precisa instalar tkintero módulo usando a seguinte linha de comando:

sudo apt-get install python3-tkLinguagem de código:  JavaScript  ( javascript )

Exibindo um rótulo

Agora vamos colocar um componente na janela. No Tkinter, esses componentes são chamados de widgets .

O código a seguir adiciona um widget de rótulo à janela raiz:

import tkinter as tk


root = tk.Tk()

# place a label on the root window
message = tk.Label(root, text="Hello, World!")
message.pack()

# keep the window displaying
root.mainloop()Linguagem de código:  Python  ( python )

Lembre-se de que você aprenderá mais sobre o Labelwidget no próximo tutorial.

Se você executar o programa, verá a seguinte saída:

Tkinter Olá Mundo

Como funciona.

Para criar um widget que pertence a um contêiner, use a seguinte sintaxe:

widget = WidgetName(master, **options)Linguagem de código:  Python  ( python )

Nesta sintaxe:

No programa, o seguinte cria um Labelwidget colocado na rootjanela:

message = tk.Label(root, text="Hello, World!")Linguagem de código:  Python  ( python )

A instrução a seguir posiciona o Labelna janela principal:

message.pack()Linguagem de código:  Python  ( python )

Observe que você aprenderá mais sobre o pack()método posteriormente. Se você não chamar o pack()método, o Tkinter ainda criará o widget. No entanto, o widget não estará visível.

Corrigindo a interface de usuário desfocada no Windows

Se você achar que o texto e a IU estão borrados no Windows, você pode usar a  ctypes biblioteca Python para consertar.

Primeiro, importe o ctypesmódulo:

from ctypes import windllLinguagem de código:  Python  ( python )

Segundo, chame a SetProcessDpiAwareness()função:

windll.shcore.SetProcessDpiAwareness(1)Linguagem de código:  Python  ( python )

Se quiser que o aplicativo seja executado em plataformas como Windows, macOS e Linux, você pode colocar o código acima em um try...finallybloco:

try:
    from ctypes import windll

    windll.shcore.SetProcessDpiAwareness(1)
finally:
    root.mainloop()Linguagem de código:  JavaScript  ( javascript )

No Windows, o código do trybloco funcionará corretamente. No entanto, no macOS ou Linux, isso falhará. No entanto, o código no finallybloqueio sempre será executado e exibirá a janela principal.

Resumo

  • Importe o tkintermódulo para criar um aplicativo de desktop Tkinter.
  • Use Tka classe para criar a janela principal e chame o mainloop()método para exibir a janela principal.
  • No Tkinter, os componentes são chamados de widgets.

Deixe um comentário

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