当您单击不同的按钮时,两个条目打印相同的内容

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