So erstellen Sie einen Taschenrechner in Tkinter

Python bietet viele Tools für die Data Science-, Web- und Android-Entwicklung. Aber eines der besten Tools, wenn es um die Programmiersprache Python geht, ist Tkinter für die grafische Benutzeroberfläche. Die Tkinter-Bibliothek in Python bietet GUI-Widgets, die beim Erstellen benutzerfreundlicher Anwendungen helfen. Tkinter ist einfach zu bedienen, leicht und schnell. Sie müssen Tkinter nicht explizit installieren, da es mit Python vorinstalliert ist.

Sie sollten die Grundlagen des Tkinter-Pakets in Python kennen, bevor Sie mit diesem Tutorial fortfahren.

Grundeinstellungen für die App

1. Modul importieren

Der erste Schritt zum Erstellen der App ist das Importieren des Moduls. Beim Importieren des Tkinter-Moduls müssen Sie das ttk- Objekt instanziieren.

 import tkinter as ttk

2. Erstellen der Fenstervariablen

Um ein Fenster zu erstellen, müssen Sie mit ttk ein Fensterobjekt erstellen . Nachdem Sie ein Fensterobjekt erstellt haben, können Sie dem Fenster einen Titel und eine Geometrie zuweisen. Die Geometrie legt die Höhe und Breite des Fensters fest.

 win = ttk.Tk()
win.title('Simple Calculator')
win.geometry('500x500')

3. MainLoop

Die Methode mainloop() führt das Fenster in einer Endlosschleife aus. Es läuft kontinuierlich, es sei denn, der Benutzer schließt das Fenster manuell.

 win.mainloop()

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

Erstellen der Benutzeroberfläche

Das Tkinter-Paket in Python enthält viele Widgets, die dabei helfen, benutzerfreundliche Designs zu erstellen. Die in diesem Projekt verwendeten Widgets sind Schaltflächen und Textfelder . Für dieses Projekt benötigen Sie folgende Schaltflächen: 0-9 Zahlen, Addieren , Subtrahieren , Multiplizieren , Dividieren , Löschen , Löschen , Berechnen .

 oneButton = ttk.Button(win, text="1", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=lambda: addToEq(1))
oneButton.grid(row=2, column=0,padx=2, pady=3)
twoButton = ttk.Button(win, text="2", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=lambda: addToEq(2))
twoButton.grid(row=2, column=1, padx=2, pady=3)
threeButton = ttk.Button(win, text="3", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=lambda: addToEq(3))
threeButton.grid(row=2, column=2, padx=2, pady=3)
plusButton = ttk.Button(win, text="+", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=lambda: addToEq("+"))
plusButton.grid(row=2, column=3, padx=2, pady=3)
# div 2
fourButton = ttk.Button(win, text="4", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=lambda: addToEq(4))
fourButton.grid(row=3, column=0, padx=2, pady=3)
fiveButton = ttk.Button(win, text="5", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=lambda: addToEq(5))
fiveButton.grid(row=3, column=1, padx=2, pady=3)
sixButton = ttk.Button(win, text="6", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=lambda: addToEq(6))
sixButton.grid(row=3, column=2, padx=2, pady=3)
minusButton = ttk.Button(win, text="-", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=lambda: addToEq("-"))
minusButton.grid(row=3, column=3, padx=2, pady=3)
# div 3
sevenButton = ttk.Button(win, text="7", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=lambda: addToEq(7))
sevenButton.grid(row=4, column=0, padx=2, pady=3)
eightButton = ttk.Button(win, text="8", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=lambda: addToEq(8))
eightButton.grid(row=4, column=1, padx=2, pady=3)
nineButton = ttk.Button(win, text="9", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=lambda: addToEq(9))
nineButton.grid(row=4, column=2, padx=2, pady=3)
muxButton = ttk.Button(win, text="x", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=lambda: addToEq("*"))
muxButton.grid(row=4, column=3, padx=2, pady=3)
#div 4
zeroButton = ttk.Button(win, text="0", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=lambda: addToEq(0))
zeroButton.grid(row=5, column=0, padx=2, pady=3)
clearButton = ttk.Button(win, text="clr", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=clearInput)
clearButton.grid(row=5, column=1, padx=2, pady=3)
calculateButton = ttk.Button(win, text="cal", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=calculateEq)
calculateButton.grid(row=5, column=2, padx=2, pady=3)
divideButton = ttk.Button(win, text="/", pady=10, padx=20, font = "Serif 15",bg = "black", fg = "white", command=lambda: addToEq("/"))
divideButton.grid(row=5, column=3, padx=2, pady=3)

Das Schaltflächen-Widget akzeptiert viele Argumente: das Fensterobjekt, den auf der Schaltfläche angezeigten Text, den Schriftstil usw. Es akzeptiert auch ein Befehlsargument, das beim Klicken auf die Schaltfläche eine Funktion oder Methode ausführt.

Um align Tasten in Zeilen und Spalten für eine benutzerfreundliche Benutzeroberfläche, nutzt das Raster – Attribut. Das Rasterattribut akzeptiert die Zeilennummer und Spaltennummer als Argumente, um die Schaltflächen entsprechend auszurichten.

 numericEq = ttk.StringVar()
dataField = ttk.Entry(win, textvariable=numericEq, font="Serif 15")
dataField.grid(row=0,columnspan=3, ipadx=80, ipady=15)

Das Entry- Widget ist das Textfeld im Python Tkinter-Paket. Normalerweise akzeptiert das Feld Eingabe viele Argumente – aber eines der wichtigsten und erforderlichen Argumente ist textvariable . Der Benutzer kann aufgrund dieses Arguments in das Eingabefeld eingeben. Im obigen Code wird einer Variablen namens numericEq ein Attribut ttk.StringVar() zugewiesen, um das Entry- Widget zu verwalten.

Verwandte: Python lernen? So manipulieren Sie Strings

Sie können die Python-Datei mit dem Befehl python file_name.py ausführen . Die Bewerbung sieht so aus:

Hinzufügen von Funktionen zu Schaltflächen:

Wie bereits erwähnt, verfügt das Schaltflächen- Widget über ein Befehlsattribut, das eine aufzurufende Funktion oder Methode akzeptiert. Die beim Klicken auf Schaltflächen übergebenen Methoden verwenden die Lambda-Funktion .

1. Numerische und arithmetische Tasten

Die numerischen Tasten bestehen aus Werten von 0-9 und die arithmetischen Tasten sind +, -, x, / für Berechnungszwecke.

Die Methode addToEq() wird beim Klicken auf die Schaltfläche aufgerufen. Diese Methode übergibt Zahlen oder arithmetische Operatoren abhängig von der Schaltfläche, auf die Sie klicken. Nachdem der Wert übergeben wurde, werden die Zahlen oder Operatoren in der Variablen calcValue gespeichert. Bevor Sie den Wert oder Operator in der calcValue- Variablen speichern , müssen Sie ihn mit der Methode str() in den String-Typ konvertieren.

 def addToEq(x):
calcValue = calcValue + str(x)
numericEq.set(calcValue)

2. Schaltflächen berechnen

Die Schaltfläche mit der Beschriftung cal berechnet den gesamten String, der in der Variablen calcValue gespeichert ist. Die Funktion eval() hilft, arithmetische Operationen mit der Variablen calcValue durchzuführen und die Summe zurückzugeben. Nachdem der Wert Abrufen eingestellt den Gesamtwert in der Variable numericEq. Die numericEq Variable zeigt diesen Wert in das Eingabefeld ein .

 def calculateEq():
total = str(eval(calcValue))
numericEq.set(total)

3. Löschen-Taste

Die Schaltfläche Löschen löscht das Eingabefeld . Bei der Löschtaste klicken, wird der clearInput () -Methode aufgerufen. Die Variable calcValue wird auf eine leere Zeichenfolge, und es wird in dem Eingabefeld gespeichert.

 def clearInput():
calcValue = ""
numericEq.set("")

Nachdem Sie alle diese Methoden implementiert haben, sieht die Ausgabe des Codes wie folgt aus:

Projekte sind der beste Weg, um Ihre Programmierfähigkeiten zu verbessern

Nachdem Sie nun gelernt haben, wie Sie einen einfachen Taschenrechner mit GUI in Python Tkinter erstellen, ist es an der Zeit, andere Python-Pakete zu erkunden. Python bietet eine Vielzahl von Paketen, mit denen Sie jede beliebige Anwendung erstellen können, die Sie sich vorstellen können.

Wie Sie wahrscheinlich bereits wissen, sind Projekte der beste Weg, um Ihre Fähigkeiten unter Beweis zu stellen. Bauprojekte werden Ihnen helfen, die Sprache gut zu verstehen und Ihren Lebenslauf zu erstellen.