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
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()
Créez une interface graphique qui effectue les opérations suivantes lorsque vous appuyez sur le bouton.
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()
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()
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.
Recommended Posts