Beginnen Sie mit der Erstellung von Desktop-Apps in Python mit der Tkinter-GUI-Bibliothek

Beginnen Sie mit der Erstellung von Desktop-Apps in Python mit der Tkinter-GUI-Bibliothek

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.





Android 7 Apps auf SD-Karte verschieben

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 :





from tkinter import 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:

from 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.geometry('600x600')
t.title('Tk Tutorial')
t.mainloop()

Tkinter Label-Widget

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()

Die 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()

Arbeiten mit den Schaltflächen-Widgets in Tkinter

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()
Button(t, text = 'Clickable', bg = 'black', fg = 'white').grid()
t.mainloop()

Die 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', , ).grid()
t.mainloop()

Hier ist die Ausgabe dafür:

So überprüfen Sie, welches Motherboard Sie haben

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

t = Tk()
Button(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 EBEN um zu sehen, wie das durchkommt.

Sie können beliebig viele Schaltflächen hinzufügen. Seien Sie jedoch vorsichtig, um Überschneidungen von Inhalten zu vermeiden.

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

t = Tk()
Button(t, text=1, bg='black', fg='white').grid(row=1, column=1)
Button(t, text=2, bg='black', fg='white').grid(row=2, column=1)
Button(t, text=3, bg='black', fg='white').grid(row=3, column=1)
Button(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 buttonpress(r):
r = 6*r
Label(t, text=r, font=(60)).grid(row=5, column=2)
t = Tk()
Button(t, text = 1, bg = 'black', fg = 'white', width = 10, height = 2,
command = lambda:buttonpress(1)).grid(row=1, column = 1, pady = 6)
Button(t, text = 2, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(2)).grid(row = 2, column = 1, pady = 6)
Button(t, text = 3, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(3)).grid(row = 3, column = 1, pady = 6)
Button(t, text = 4, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(4)).grid(row = 4, column = 1, pady = 6)
t.mainloop()

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

Und wenn Sie sich Sorgen machen Pads -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 buttonpress(r):
r = 6*r
Label(t, text = r, font = (60)).grid(row = 5, column = 2)
t = Tk()
a = [1, 4, 6, 7]
for i in a:
j = lambda y = i:buttonpress(y)
Button(t, text = i, bg = 'black', fg = 'white', width = 10, height = 2,
command=j).grid(row = i, column = 1, pady = 6)
t.mainloop()

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

from tkinter import *
t = Tk()
buttons = ['Files', 'Dashboard', 'Menu', 'Settings', 'Help']
m = 0
for i in range(len(buttons)):
# Get each text in the buttons array using a list index as m increases.
# Then let the column increase by 1 through the length of the array:

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 = 'Select option').grid()
t.mainloop()

Fühlen Sie sich frei, diesen Häkchen-Button mit dem zu multiplizieren zum Schleife, wie wir es zuvor getan haben.

So erstellen Sie ein Dropdown-Menü mit dem Menü-Widget von Tkinter

Die 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:

from tkinter import *
t = Tk()
fileOptions = ['New', 'open', 'Save', 'Save as']
fileOptionsAfterseparator = ['Import', 'Export', 'Exit']
viewOptions = ['Transform', 'Edit', 'Create']
menuBar = Menu(t)
file = Menu(menuBar, tearoff=0)
for i in fileOptions:
file.add_command(label=i, command=None)
file.add_separator()
for i in fileOptionsAfterseparator:
file.add_command(label=i, command=None)
menuBar.add_cascade(label='File', menu=file)
View = Menu(menuBar, tearoff=0)
for i in viewOptions:
View.add_command(label=i, command=None)
menuBar.add_cascade(label='View', menu=View)
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() #set the variable type of the options
Omenu.set('MUO') #specify a default value for the menu icon
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.

So blockieren Sie die Nummer auf Android

Sie können jedoch 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.

Teilen Teilen Tweet 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 Idisou Omisola(94 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 Technik zu weisen, motiviert ihn, mehr zu schreiben.

Mehr von Idowu Omisola

Abonniere unseren Newsletter

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

Klicken Sie hier, um zu abonnieren