Janela Orientada a Objetos Tkinter

Resumo : neste tutorial você aprenderá como aplicar programação orientada a objetos no Tkinter para deixar o código mais organizado.

Definindo uma janela orientada a objetos Tkinter

O seguinte programa simples cria uma janela raiz e a exibe na tela:

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

Quando o programa fica mais complexo, você pode usar uma abordagem de programação orientada a objetos para tornar o código mais organizado.

O programa a seguir obtém o mesmo resultado que o programa acima, mas use a class:

import tkinter as tk


class App(tk.Tk):
    def __init__(self):
        super().__init__()


if __name__ == "__main__":
    app = App()
    app.mainloop()Linguagem de código:  Python  ( python )

Como funciona.

  • Primeiro, defina uma Appclasse que herda da tk.Tkclasse. Dentro do __init__()método, chame o __init__()método da tk.Tkclasse.
  • Segundo, crie uma nova instância da Appclasse e chame o mainloop()método para exibir a janela raiz.

Outro exemplo de janela orientada a objetos no Tkinter

A classe a seguir representa uma janela que consiste em um rótulo e um botão . Ao clicar no botão, o programa exibe uma caixa de mensagem :

import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showinfo


class App(tk.Tk):
  def __init__(self):
    super().__init__()

    # configure the root window
    self.title('My Awesome App')
    self.geometry('300x50')

    # label
    self.label = ttk.Label(self, text='Hello, Tkinter!')
    self.label.pack()

    # button
    self.button = ttk.Button(self, text='Click Me')
    self.button['command'] = self.button_clicked
    self.button.pack()

  def button_clicked(self):
    showinfo(title='Information', message='Hello, Tkinter!')

if __name__ == "__main__":
  app = App()
  app.mainloop()Linguagem de código:  Python  ( python )

Como funciona.

  • Primeiro, crie um rótulo e um botão no __init__()método da classe App.
  • Segundo, atribua o button_clicked()método à opção de comando do botão. Dentro do button_clicked()método, exiba uma caixa de mensagem.
  • Terceiro, mova a inicialização do aplicativo para o if __name__ = "main"bloco.

Resumo

  • Use uma abordagem de programação orientada a objetos para tornar o código mais organizado.
  • Defina uma classe que herda da tk.Tkclasse. Sempre chame o super().__init__()da classe pai na classe filha.

Deixe um comentário

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