[Python] Modèle Tkinter

introduction

Voici une manière classique de classer Tkinter, un outil d'interface graphique Python.

Ceci est un article d'introduction sur la création d'une visionneuse d'images à l'aide de ce modèle. (Une addition) Créer une visionneuse d'images avec Tkinter

Modèle de classification

  1. Classe d'application Paramètres et placement du widget, définir la fonction de rappel
  2. fonction principale
import tkinter as tk
from tkinter import ttk

class Application(tk.Frame):
    def __init__(self,master):
        super().__init__(master)
        self.pack()

        self.master.geometry("300x300")
        self.master.title("Tkinter with Class Template")

        self.create_widgets()

    def create_widgets(self):
        pass

    def callBack(self):
        pass

def main():
    root = tk.Tk()
    app = Application(master=root)#Inherit
    app.mainloop()

if __name__ == "__main__":
    main()

Résultat d'exécution

Tkinter-template.png

Exemple de programmation procédurale Tkinter

Créez une interface graphique qui effectue les opérations suivantes lorsque vous appuyez sur le bouton.

  1. Le message change
  2. Sortez le texte saisi dans Entrée Cette fois, j'écrirai dans le programme de procédure de procédure. Il est intuitif et facile à comprendre, mais il présente l'inconvénient qu'il devient difficile à entretenir et à réparer à mesure que le projet se développe.
import tkinter as tk
from tkinter import ttk

#Generate root instance
root = tk.Tk()
root.geometry("300x300")
root.title("Tkinter without Class")

#Define Button Click Event Function

def say_Hello():
    print("Hello World") # on python console
    label_hello.configure(text="I Have benn Clicked!")
    print(name.get())
    label_name.configure(text = name.get())

#Define Button Widget

button_hello = ttk.Button(master=root)
button_hello.configure(text="Hello World")
button_hello.configure(command = say_Hello)
button_hello.pack()

#Define Label Widget
label_hello = ttk.Label(master=root)
label_hello.configure(text = 'A Label')
label_hello.pack()

#Define Enntry Widget
name= tk.StringVar()
entry_name = ttk.Entry(master=root)
entry_name.configure(textvariable = name)
entry_name.pack()

#Define Label Widget2
label_name = ttk.Label(master=root)
label_name.configure(text = 'Please input something in Entry')
label_name.pack()


# Start GUI
root.mainloop()

Programmation orientée objet Tkinter

Ici, nous allons changer le code de programmation procédurale du chapitre précédent en un modèle de classification. Faites attention à vous-même.

import tkinter as tk
from tkinter import ttk

class Application(tk.Frame):
    def __init__(self,master):
        super().__init__(master)
        self.pack()

        self.master.geometry("300x300")
        self.master.title("Tkinter with Class")

        self.create_widgets()


    # Create Widgets function
    def create_widgets(self):
        #Button
        self.button_hello = ttk.Button(self)
        self.button_hello.configure(text="Hello World")
        self.button_hello.configure(command = self.say_Hello) #do not forget to add self!
        self.button_hello.pack()

        #Label
        self.label_hello = ttk.Label(self)
        self.label_hello.configure(text='A Label')
        self.label_hello.pack()

        #Entry
        self.name = tk.StringVar()
        self.entry_name = ttk.Entry(self)
        self.entry_name.configure(textvariable = self.name)
        self.entry_name.pack()

        #Label2
        self.label_name=ttk.Label(self)
        self.label_name.configure(text = 'Please input something in Entry')
        self.label_name.pack()

    # Event Callback Function
    def say_Hello(self):
        print("Hello, World")  # on python console
        self.label_hello.configure(text="I Have benn Clicked!")
        print(self.name.get())
        self.label_name.configure(text=self.name.get())



def main():
    root = tk.Tk()
    app = Application(master=root)#Hériter de l'héritage de classe!
    app.mainloop()

if __name__ == "__main__":
    main()

Résultat d'exécution

Tkinter_Blog.png

Résumé

J'ai trouvé que l'utilisation de classes rendait le code Python plus structuré et plus facile à lire. Avec cela, nous continuerons à nous développer. J'avais l'impression de pouvoir enfin voir le monde de Python.

Matériel de référence

  1. [Python] Template utilisant Tkinter (méthode de classification)
  2. A Simple Hello World Program
  3. document python tkinter "Un programme simple Hello World" est trop difficile
  4. Python GUI with Tkinter - 8 - Using Classes (Youtube)
  5. Créer une visionneuse d'images avec Tkinter

Recommended Posts

[Python] Modèle Tkinter
modèle argparse python
Modèle Pro compétitif (Python)
Modèle d'analyse de données Python
Moteur de template Jinja2 2 Python
Note d'introduction Python Tkinter
modèle de test unitaire python
Programmation avec Python et Tkinter
Python
Comment mettre à jour Tkinter de Python vers la version 8.6
Mémo Python Tkinter (pour moi)
Modèle Python pour Codeforces-test manuel-
Exécuter Label avec tkinter [Python]
[Python] Modèle Pro compétitif [Chez Coder]
modèle
Python Design Pattern - Méthode de modèle
[Python] Afficher plusieurs fenêtres avec Tkinter
Créer une interface graphique python à l'aide de tkinter
Modèle AtCoder ABC 179 Python (A ~ E)
[Python] Création de plusieurs fenêtres avec Tkinter
Création d'interface graphique en python avec tkinter 2
python kafka
Lecture vidéo avec son sur python !! (tkinter / imageio)
Tkinter commence
Les bases de Python ⑤
Python intégré
Notation d'inclusion Python
Technique Python
À propos de la création de l'interface graphique à l'aide de TKinter de Python
Étudier Python
Compte à rebours Python 2.7
Mémorandum Python
Python FlowFishMaster
Création d'interface graphique en python à l'aide de tkinter partie 1
Service Python
Traitement d'exécution périodique lors de l'utilisation de tkinter [Python3]
fonction python ①
Les bases de Python
Mémo Python
ufo-> python (3)
Notation d'inclusion Python
Installer python
Python Singleton
Les bases de Python ④
Mémorandum Python 2
mémo python
Python Jinja2
Incrément Python
Installer Python 3.4.3.
Essayez Python
Mémo Python
Itératif Python
Algorithme Python
[Python] Variables
Fonctions Python
Python sys.intern ()
Django # 2 (modèle)