【问题标题】:Two entries printing the same thing when you click on the different buttons当您单击不同的按钮时,两个条目打印相同的内容
【发布时间】:2019-11-17 05:25:08
【问题描述】:

我是使用 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()

【问题讨论】:

    标签: python python-3.x string tkinter tk


    【解决方案1】:

    问题是你给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()
    

    【讨论】:

      猜你喜欢
      • 2016-06-12
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多