当您单击不同的按钮时,两个条目打印相同的内容
Two entries printing the same thing when you click on the different buttons
我是使用 Tkinter 的新手,我试图搜索答案,但我变得更加困惑。每当我尝试 运行 程序并通过按下两个按钮打印出两个条目时,它只会打印出第二个条目而忽略第一个条目。这两个按钮中的每一个仍然附加在它们正确的列表中,但是,只是附加相同的东西,第二个条目。
import tkinter as tk
HEIGHT = 125
WIDTH = 600
the_text_holder = []
the_date_holder = []
def get_text(entry):
the_text_holder.append(entry)
print(the_text_holder)
def get_date(entry):
the_date_holder.append(entry)
print(the_date_holder)
root = tk.Tk()
canvas = tk.Canvas(root, height = HEIGHT, width = WIDTH)
canvas.pack()
frame = tk.Frame(root, bg= "#696969")
frame.place(relwidth = 1, relheight = 1)
label = tk.Label(frame,text= "Reminder", bg = "#696969", font = ("arial", 12))
label.place(relx = 0.05, rely = 0.01)
label = tk.Label(frame,text= "Enter reminder:", bg = "#21558c", font = ("arial", 12))
label.place(relx = 0.05, rely = 0.19)
label = tk.Label(frame,text= "Enter time:", bg = "#21558c", font = ("arial", 12))
label.place(relx = 0.05, rely = 0.37)
entry = tk.Entry(frame, bg = "white")
entry.place(relx = 0.3, rely=0.19, relwidth = 0.6)
entry = tk.Entry(frame, bg = "white")
entry.place(relx = 0.3, rely=0.37, relwidth = 0.6)
button = tk.Button(frame, text ="Set text",bg = "#8b0000", command = lambda: get_text(entry.get()))
button.place(relx = 0.91, rely = 0.15)
button = tk.Button(frame, text ="Set time",bg = "#8b0000", command = lambda: get_date(entry.get()))
button.place(relx = 0.91, rely = 0.37)
root.mainloop()
问题是你给entry
赋了一个新值,你需要重命名第二个entry
请注意,您也对 button
做同样的事情...
reminder_entry = tk.Entry(frame, bg="white")
reminder_entry.place(relx=0.3, rely=0.19, relwidth=0.6)
time_entry = tk.Entry(frame, bg="white")
time_entry.place(relx=0.3, rely=0.37, relwidth=0.6)
button = tk.Button(frame, text="Set text", bg="#8b0000", command=lambda: get_text(reminder_entry.get()))
button.place(relx=0.91, rely=0.15)
button = tk.Button(frame, text="Set time", bg="#8b0000", command=lambda: get_date(time_entry.get()))
button.place(relx=0.91, rely=0.37)
root.mainloop()
我是使用 Tkinter 的新手,我试图搜索答案,但我变得更加困惑。每当我尝试 运行 程序并通过按下两个按钮打印出两个条目时,它只会打印出第二个条目而忽略第一个条目。这两个按钮中的每一个仍然附加在它们正确的列表中,但是,只是附加相同的东西,第二个条目。
import tkinter as tk
HEIGHT = 125
WIDTH = 600
the_text_holder = []
the_date_holder = []
def get_text(entry):
the_text_holder.append(entry)
print(the_text_holder)
def get_date(entry):
the_date_holder.append(entry)
print(the_date_holder)
root = tk.Tk()
canvas = tk.Canvas(root, height = HEIGHT, width = WIDTH)
canvas.pack()
frame = tk.Frame(root, bg= "#696969")
frame.place(relwidth = 1, relheight = 1)
label = tk.Label(frame,text= "Reminder", bg = "#696969", font = ("arial", 12))
label.place(relx = 0.05, rely = 0.01)
label = tk.Label(frame,text= "Enter reminder:", bg = "#21558c", font = ("arial", 12))
label.place(relx = 0.05, rely = 0.19)
label = tk.Label(frame,text= "Enter time:", bg = "#21558c", font = ("arial", 12))
label.place(relx = 0.05, rely = 0.37)
entry = tk.Entry(frame, bg = "white")
entry.place(relx = 0.3, rely=0.19, relwidth = 0.6)
entry = tk.Entry(frame, bg = "white")
entry.place(relx = 0.3, rely=0.37, relwidth = 0.6)
button = tk.Button(frame, text ="Set text",bg = "#8b0000", command = lambda: get_text(entry.get()))
button.place(relx = 0.91, rely = 0.15)
button = tk.Button(frame, text ="Set time",bg = "#8b0000", command = lambda: get_date(entry.get()))
button.place(relx = 0.91, rely = 0.37)
root.mainloop()
问题是你给entry
赋了一个新值,你需要重命名第二个entry
请注意,您也对 button
做同样的事情...
reminder_entry = tk.Entry(frame, bg="white")
reminder_entry.place(relx=0.3, rely=0.19, relwidth=0.6)
time_entry = tk.Entry(frame, bg="white")
time_entry.place(relx=0.3, rely=0.37, relwidth=0.6)
button = tk.Button(frame, text="Set text", bg="#8b0000", command=lambda: get_text(reminder_entry.get()))
button.place(relx=0.91, rely=0.15)
button = tk.Button(frame, text="Set time", bg="#8b0000", command=lambda: get_date(time_entry.get()))
button.place(relx=0.91, rely=0.37)
root.mainloop()