import tkinter as tk
def load(event):
file = open(textField.GetValue())
txt.SetValue(file.read())
file.close()
def save(event):
file = open(textField.GetValue(), 'w')
file.write(txt.GetValue())
file.close()
win = tk.Tk()
win.title('Text Editor')
win.geometry('500x500')
# create text field
textField = tk.Entry(win, width = 50)
textField.pack(fill = tk.NONE, side = tk.TOP)
# create button to open file
openBtn = tk.Button(win, text = 'Open', command = load())
openBtn.pack(expand = tk.FALSE, fill = tk.X, side = tk.TOP)
# create button to save file
saveBtn = tk.Button(win, text = 'Save', command = save())
saveBtn.pack(expand = tk.FALSE, fill = tk.X, side = tk.TOP)
Ich bekomme den Fehler load and save are missing a position argument: event
. Ich verstehe den Fehler, verstehe aber nicht, wie er gelöst werden kann.Tkinter: Aufruf der Funktion, wenn die Taste gedrückt wird
Wenn Sie den 'tk.Button's erstellen, sind Sie _calling_ die Funktionen, weil Sie zum Beispiel' command = load() 'statt' command = load' in der Aufrufsequenz zu dem Konstrukteur. – martineau
Obwohl es kein exaktes Duplikat ist, hat Ihr Code das gleiche Problem wie der Code in dieser Frage: http://stackoverflow.com/q/5767228/7432 –
@martineau Ich habe das getan. Nun heißt es, das Entry-Objekt habe kein Attribut GetValue. Was ist der Zweck, das Ereignis als Parameter in einer Funktion zu haben? – user7091463