Tkinter Fehler?
Ich programmiere mit Tkinter einen Taschenrechner zusammen mit einem Video.
Es kommt die ganze zeit die Fehlermeldung "nontype has no attribute get".
Mein code:
import tkinter as tk
calculator = ()
root = tk.Tk()
root.geometry("75x100")
root.title("Taschenrechner")
root.resizable(True, True)
entry_ziv = tk.Entry(root).grid(row=0, column=0)
def add_ziv(ziv):
entry_ziv.insert(0, ziv)
def show_result():
result = eval(entry_ziv.get())
entry.delete(0, tk.END)
entry_ziv.insert(0, str(result))
button_seven = tk.Button(root, text="7", command=lambda: add_ziv("7")).grid(row=1, column=0)
button_eight = tk.Button(root, text="8",command=lambda: add_ziv("8")).grid(row=1, column=1)
button_nine = tk.Button(root, text="9", command=lambda: add_ziv("9")).grid(row=1, column=2)
button_div = tk.Button(root, text=":", command=lambda: add_ziv(":")).grid(row=1, column=3)
button_four = tk.Button(root, text="4", command=lambda: add_ziv("4").grid(row=2, column=0))
button_five = tk.Button(root, text="5", command=lambda: add_ziv("5")).grid(row=2, column=1)
button_six = tk.Button(root, text="6", command=lambda: add_ziv("6")).grid(row=2, column=2)
button_multiply = tk.Button(root, text="x", command=lambda: add_ziv("x")).grid(row=2, column=3)
tton_one = tk.Button(root, text="1", command=lambda: add_ziv("1")).grid(row=3, column=0)
button_two = tk.Button(root, text="2", command=lambda: add_ziv("2")).grid(row=3, column=1)
button_tree = tk.Button(root, text="3", command=lambda: add_ziv("3")).grid(row=3, column=2)
button_minus = tk.Button(root, text="-", command=lambda: add_ziv("-")).grid(row=3, column=3)
button_execute = tk.Button(root, text="=", command=show_result()).grid(row=4, column=2)
button_plus = tk.Button(root, text="+", command=lambda: add_ziv("+")).grid(row=4, column=3)
root.mainloop()
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Code, Python, Programmieren & Softwareentwicklung
Das Problem liegt in dieser Zeile:
entry_ziv = tk.Entry(root).grid(row=0, column=0)
Die grid-Methode liefert den Wert None zurück. Auf den verweist entry_ziv dann auch.
Spalte die Zeile daher in zwei separate Anweisungen auf:
entry_ziv = tk.Entry(root)
entry_ziv.grid(row=0, column=0)