Tkinter ist ein Toolkit für die grafische Benutzeroberfläche (GUI), das Sie ausprobieren sollten, wenn Sie die Leistungsfähigkeit von Python beim Erstellen von Desktop-Apps erkunden möchten.

Hier werfen wir einen Blick auf die Grundlagen des Tkinter GUI-Moduls.

Tkinter-Setup

Normalerweise müssen Sie nicht installieren tkinter separat, wenn Sie eine neuere Version von Python installiert haben, beginnend mit Python 3. Die Bibliothek funktioniert jedoch möglicherweise nicht mit alten Python-Versionen. Dies ist ein häufiges Problem für Mac- und Linux-Benutzer, da diese Betriebssysteme normalerweise standardmäßig mit älteren Versionen von Python geliefert werden.

Im Allgemeinen verwenden Sie die tkinter -Modul, stellen Sie sicher, dass Sie die neueste kompatible Version von Python von der offiziellen Seite herunterladen und auf Ihrem PC installieren python.org Webseite.

Wenn Sie einen Mac verwenden, können Sie alternativ die neueste Version von ActiveTcl herunterladen, a tkinter Compiler von Aktiver Zustand.

So verwenden Sie Tkinter

Tkinter hängt von seinem eingebauten ab TK Klasse. Und es fasst alle Ereignisse innerhalb der GUI in a Hauptschleife. Und so kam es dass der Hauptschleife Wrapper macht dein tkinter Code ausführbar.

Um loszulegen tkinter:

von tkinter importieren Tk
Tk().mainloop()

Das Ausführen des obigen Codes führt zu einem leeren tkinter Rahmen.

Die Anpassungsfunktionen von Tkinter befinden sich jedoch in den integrierten Widgets.

Um diese Widgets zu verwenden, können Sie sie importieren aus tkinter Durch Ersetzen von tkinter importieren Tk mit:

aus tkinter-Import *
t = Tk()
t.mainloop()

Sie können die Fenstergröße auch mit dem Geometrie Funktion und geben Sie dann einen Titel mit der Titel Widget von tkinter:

t = Tk()
t.geometrie("600x600")
t.title("Tk-Tutorial")
t.mainloop()

Mit Tkinter können Sie Klartexte direkt in die GUI schreiben, indem Sie die Etikett Widget:

t = Tk()
Label (t, text = "MUO Tkinter Tutorial").grid()
t.mainloop()

Das Netz() Methode ist jedoch eine Alternative zur Pack() Methode. Es klebt Ihre Widgets an die GUI und macht sie sichtbar.

Sie können auch eine Schriftart für Ihre Etikett Text:

t = Tk()
Label (t, text = "MUO Tkinter Tutorial", font=(60)).grid()
t.mainloop()

Schaltflächen sind einige der am häufigsten verwendeten Widgets in tkinter. Und Sie können diese anklickbaren Schaltflächen mithilfe der verschiedenen integrierten Schaltflächen-Widgets zu Ihrer GUI hinzufügen.

So fügen Sie Ihrer GUI eine primäre Schaltfläche hinzu, indem Sie die Taste Widget:

t = Tk()
Schaltfläche (t, text = "Klickbar", bg = "schwarz", fg = "weiß").grid()
t.mainloop()

Das bg und fg Schlüsselwörter beschreiben die Hintergrundfarbe der Schaltfläche bzw. die Farbe des darin enthaltenen Textes.

Sie können auch die Abmessungen der Schaltfläche anpassen, indem Sie die Höhe und Breite Parameter:

t = Tk()
Button (t, text = "Clickable", bg = "black", fg = "white", height="2", width="10").grid()
t.mainloop()

Hier ist die Ausgabe dafür:

Und wenn Sie die Schaltfläche optisch ansprechender gestalten möchten, können Sie ein include Linderung Schlüsselwort und passen Sie dann die Rahmenbreite an:

t = Tk()
Schaltfläche (t, text="Clickable", bg="blue", fg="white",
height=2, width=10, relief=RAISED, borderwidth=6).grid()
t.mainloop()

Und das sieht so aus:

Ersetzen ERZOGEN mit WOHNUNG um zu sehen, wie das durchkommt.

Sie können beliebig viele Schaltflächen hinzufügen. Achten Sie jedoch darauf, dass sich Inhaltsüberschneidungen vermeiden.

Um Überlappungen zu vermeiden, können Sie die Zeilen- und Spaltenposition für jede Schaltfläche festlegen:

t = Tk()
Schaltfläche (t, text=1, bg="black", fg="white").grid (row=1, column=1)
Schaltfläche (t, text=2, bg="black", fg="white").grid (row=2, column=1)
Schaltfläche (t, text=3, bg="black", fg="white").grid (row=3, column=1)
Schaltfläche (t, text=4, bg="black", fg="white").grid (row=4, column=1)
t.mainloop()

Eine optionale Befehl Das Schlüsselwort fügt jedoch Ereignisse zu den Taste Widget. Im Wesentlichen verankert es eine optionale Funktion, die bestimmte Ereignisse verarbeitet, wenn Sie auf eine Schaltfläche klicken.

Der folgende Code multipliziert beispielsweise den Wert jeder Schaltfläche mit 6, wenn Sie darauf klicken. Und es basiert auf einer vordefinierten Funktion:

def Tastendruck (r):
r = 6*r
Label (t, text=r, font=(60)).grid (row=5, column=2)
t = Tk()
Schaltfläche (t, Text = 1, bg = "schwarz", fg = "weiß", Breite = 10, Höhe = 2,
command = lambda: buttonpress (1)).grid (row=1, column = 1, pady = 6)
Schaltfläche (t, Text = 2, bg = "schwarz", fg = "weiß", Breite = 10,
Befehl = Lambda: buttonpress (2)).grid (Zeile = 2, Spalte = 1, Pady = 6)
Schaltfläche (t, Text = 3, bg = "schwarz", fg = "weiß", Breite = 10,
command = lambda: buttonpress (3)).grid (Zeile = 3, Spalte = 1, Pady = 6)
Schaltfläche (t, Text = 4, bg = "schwarz", fg = "weiß", Breite = 10,
command = lambda: buttonpress (4)).grid (Zeile = 4, Spalte = 1, Pady = 6)
t.mainloop()

Im obigen Code, Knopfdruck behandelt das Multiplikationsereignis. Das Taste Widget zeigt dann mit einem anonymen. auf diesen Event-Handler Lambda Funktion.

Und wenn Sie sich Sorgen machen pady -Schlüsselwort, trennt es jede Schaltfläche in der Zeile deutlich. Ersetze dies durch padx trennt die Schaltflächen in der Spalte. Und Sie können beide Schlüsselwörter gleichzeitig verwenden, um die Schaltflächen nach Belieben über beide Achsen zu trennen.

Das heißt, Sie möchten nicht das Rad für jede Schaltfläche neu erfinden, wie Sie es im vorherigen Code getan haben. Dies verlangsamt die Ausführungszeit und macht Ihren Code schwer zu lesen und einzugrenzen.

Doch kannst du eine for-Schleife verwenden um diese Wiederholung zu vermeiden.

Hier ist also eine kürzere und bessere Version des obigen Codes:

def Tastendruck (r):
r = 6*r
Label (t, text = r, font = (60)).grid (row = 5, column = 2)
t = Tk()
a = [1, 4, 6, 7]
für ich in a:
j = Lambda y = i: Tastendruck (y)
Schaltfläche (t, text = i, bg = "schwarz", fg = "weiß", Breite = 10, Höhe = 2,
command=j).grid (Zeile = i, Spalte = 1, pady = 6)
t.mainloop()

Menüschaltflächen und Prüfschaltflächen

Lassen Sie uns die Macht von weiter erforschen zum Schleife, um Menüschaltflächen zu Ihrer GUI hinzuzufügen:

aus tkinter-Import *
t = Tk()
buttons = ["Dateien", "Dashboard", "Menü", "Einstellungen", "Hilfe"]
m = 0
für i in Reichweite (len (Tasten)):
# Holen Sie sich jeden Text im Button-Array mit einem Listenindex, wenn m ansteigt.
# Lassen Sie dann die Spalte durch die Länge des Arrays um 1 wachsen:

Menubutton (t, text=buttons[m], bg="blue", fg="white").grid (row=5, column=i)
m += 1
t.mainloop()

Das Hinzufügen von Check-Buttons zu Ihrer GUI ist ebenfalls recht einfach:

t = Tk()
Checkbutton (t, text = "Option auswählen").grid()
t.mainloop()

Fühlen Sie sich frei, diesen Check-Button mit dem zum Schleife, wie wir es zuvor getan haben.

Das Speisekarte Mit dem Widget können Sie anklickbare Dropdown-Menüs in. erstellen tkinter.

Wie bereits gesagt, tkinter bietet viele Widget-Optionen. Und Sie werden einige davon beim Gestalten Ihres Dropdown-Menüs verwenden.

Hier sind einige der gebräuchlichen Widget-Optionen, auf die Sie beim Erstellen eines Dropdown-Menüs stoßen:

  • add_cascade: Es zeigt eine Menübeschriftung an und klebt sie dort an, wo sie hingehört.
  • add_separator: Es grenzt Untermenüs ab und gruppiert sie in obere und untere Untermenüs.
  • add_command: Hier geben Sie Ihrem Untermenü einen Namen. Letztendlich akzeptiert es ein Befehlsargument, in dem Sie einen Ereignishandler angeben können.

Hier ist ein Dropdown-Beispiel, das diese drei Optionen verwendet:

aus tkinter-Import *
t = Tk()
fileOptions = ["Neu", "Öffnen", "Speichern", "Speichern unter"]
fileOptionsAfterseparator = ["Import", "Export", "Exit"]
viewOptions = ["Transformieren", "Bearbeiten", "Erstellen"]
menuBar = Menü (t)
file = Menü (menuBar, Tearoff=0)
für i in fileOptions:
file.add_command (label=i, command=None)
file.add_separator()
für i in fileOptionsAfterseparator:
file.add_command (label=i, command=None)
menuBar.add_cascade (label="Datei", menu=Datei)
Ansicht = Menü (menuBar, Tearoff=0)
für i in den Ansichtsoptionen:
View.add_command (label=i, command=None)
menuBar.add_cascade (label="Ansicht", menu=Ansicht)
t.config (menu=menuBar)
t.mainloop()

Sehen Sie, wie das aussieht:

Tkinter-Optionsmenü

Ein Optionsmenü, nicht so wie Speisekarte Dropdown-Menü, wechselt seine Beschriftung zu einer ausgewählten Option.

Sie können zwar einen Standardwert für die Beschriftung für ein Optionsmenü angeben, es hat jedoch standardmäßig keine Beschriftung.

Verwandt: Python-Projektideen für Anfänger geeignet

So erstellen Sie ein Optionsmenü in tkinter:

t = Tk()
Omenu = StringVar() #setze den Variablentyp der Optionen
Omenu.set("MUO") #Geben Sie einen Standardwert für das Menüsymbol an
OptionMenu (t, Omenu, "MUO", "Amazon", "Tutorial").grid()
t.mainloop()

Erstellen Sie eine wiederverwendbare Desktop-App mit Tkinter

Tkinter bietet eine Reihe von Funktionen, mit denen Sie interaktive GUI-Desktop-Apps erstellen können. Obwohl es möglicherweise nicht viele flexible Verschönerungsfunktionen wie einige andere Python-GUI-Module hat, ist es dennoch ein praktisches Werkzeug, das es wert ist, erkundet zu werden. Und während die Beispiele hier nur einige der grundlegenden Konzepte zeigen, tkinter bietet erweiterte Funktionen, die Sie ausprobieren können.

Das heißt, Sie können einen GUI-Desktop-Rechner erstellen, einen Mini-Texteditor erstellen oder sogar eine GUI-Desktop-App erstellen, um Ihre Bestände zu verwalten. Wenn Sie Ihre Flügel ausbreiten und ein Desktop-GUI-Major werden möchten, können Sie sogar andere GUI-Module von Python ausprobieren.

Email
GUI? Was ist eine grafische Benutzeroberfläche?

Benutzt du eine GUI? Die Chancen stehen gut, weil Sie sie jeden Tag verwenden.

Weiter lesen

Verwandte Themen
  • Programmierung
  • Python
Über den Autor
Idowu Omisola (88 veröffentlichte Artikel)

Idowu hat eine Leidenschaft für alles, was smarte Technologien und Produktivität ist. In seiner Freizeit spielt er mit Programmieren und wechselt bei Langeweile aufs Schachbrett, aber er liebt es auch, ab und zu aus der Routine auszubrechen. Seine Leidenschaft, Menschen den Weg in die moderne Technologie zu weisen, motiviert ihn, mehr zu schreiben.

Mehr von Idowu Omisola

Abonnieren Sie unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren