[Python] Tkinter-Vorlage

Einführung

Hier ist eine klassische Methode zur Klassifizierung von Tkinter, einem Python-GUI-Tool.

Dies ist ein Einführungsartikel zum Erstellen eines Bildbetrachters mit dieser Vorlage. (Zusatz) Image Viewer mit Tkinter erstellen

Klassifizierungsvorlage

  1. Anwendungsklasse Widget-Einstellungen und Platzierung, definieren Sie die Rückruffunktion
  2. Hauptfunktion
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()

Ausführungsergebnis

Tkinter-template.png

Beispiel für eine prozedurale Programmierung von Tkinter

Erstellen Sie eine GUI, die die folgenden Vorgänge ausführt, wenn die Taste gedrückt wird.

  1. Die Nachricht ändert sich
  2. Geben Sie den in Eintrag eingegebenen Text aus Dieses Mal werde ich in das Prozedurprozedurprogramm schreiben. Es ist intuitiv und leicht zu verstehen, hat jedoch den Nachteil, dass es mit dem Wachstum des Projekts schwierig zu warten und zu reparieren ist.
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()

Tkinter objektorientierte Programmierung

Hier werden wir den prozeduralen Programmiercode im vorherigen Kapitel in eine Klassifizierungsvorlage ändern. Sei vorsichtig mit dir.

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)#Klassenvererbung erben!
    app.mainloop()

if __name__ == "__main__":
    main()

Ausführungsergebnis

Tkinter_Blog.png

Zusammenfassung

Ich fand heraus, dass die Verwendung von Klassen den Python-Code strukturierter und leichter lesbar machte. Damit werden wir weiter expandieren. Ich hatte das Gefühl, endlich die Welt von Python sehen zu können.

Referenzmaterial

  1. [Python] Vorlage mit Tkinter (Klassifizierungsmethode)
  2. A Simple Hello World Program
  3. Python-Tkinter-Dokument "Ein einfaches Hello World-Programm" ist zu schwierig
  4. Python GUI with Tkinter - 8 - Using Classes (Youtube)
  5. Image Viewer mit Tkinter erstellen

Recommended Posts

[Python] Tkinter-Vorlage
Python Argparse Vorlage
Wettbewerbsfähige Pro-Vorlage (Python)
Python-Datenanalysevorlage
Jinja2 | Python-Vorlagen-Engine
Python Tkinter Primer Hinweis
Python-Unit-Test-Vorlage
Python Template Engine Empy
Programmieren mit Python und Tkinter
Python
So aktualisieren Sie Pythons Tkinter auf 8.6
Python Tkinter Memo (für mich)
Python-Vorlage für Codeforces-manuelle Test-
Führen Sie Label mit tkinter [Python] aus.
[Python] Competitive Pro-Vorlage [At Coder]
Vorlage
Python Design Pattern - Template-Methode
[Python] Mit Tkinter mehrere Fenster anzeigen
Erstellen Sie mit tkinter eine Python-GUI
Vorlage AtCoder ABC 179 Python (A ~ E)
[Python] Erstellen mehrerer Fenster mit Tkinter
GUI-Erstellung in Python mit tkinter 2
Kafka Python
Videowiedergabe mit Ton auf Python !! (tkinter / imageio)
Tkinter beginnt
Python-Grundlagen ⑤
Eingebaute Python
Python-Einschlussnotation
Python-Technik
Informationen zum Erstellen einer GUI mit TKinter of Python
Python studieren
Python 2.7 Countdown
Python-Memorandum
Python FlowFishMaster
GUI-Erstellung in Python mit tkinter Teil 1
Python-Dienst
Periodische Ausführungsverarbeitung bei Verwendung von tkinter [Python3]
Python-Funktion ①
Python-Grundlagen
Python-Memo
Ufo-> Python (3)
Python-Einschlussnotation
Installieren Sie Python
Python Singleton
Python-Grundlagen ④
Python-Memorandum 2
Python-Memo
Python Jinja2
Python-Inkrement
Python installieren 3.4.3.
Versuchen Sie Python
Python-Memo
Python iterativ
Python-Algorithmus
[Python] -Variablen
Python-Funktionen
Python sys.intern ()
Django # 2 (Vorlage)