我正在编写一个程序,在按下特定的“模式”按钮后创建一个入口小部件,然后从用户那里获取输入,并想在用户按下“输入”按钮后销毁该入口小部件。 我是python的新手,所以无法理解该错误。 请帮助找到我的代码上的问题
signupview
这是我的代码。 我成功地从用户那里获取了输入并提供给了我的主程序,但是没有破坏输入小部件。 这是我的错误
import tkinter as tk
import time
root=tk.Tk()
root.geometry("600x600")
root.title("User Interface Monitor")
rpm=tk.StringVar(root)
tim=tk.StringVar(root)
def enter():
global rpm,tim
root.rpmLabel=tk.Label(root,text="enter rpm value:").grid(row=0)
root.timeLabel=tk.Label(root,text="enter time in sec").grid(row=1)
root.e1 = tk.Entry(root,textvariable=rpm).grid(row=0,column=1)
root.e2 = tk.Entry(root,textvariable=tim).grid(row=1,column=1)
#rpm=rpm.get()
#tim=tim.get()
#return rpm,tim
def gett():
global rpm, tim
rpm = rpm.get()
tim = tim.get()
print(rpm)
print(tim)
root.e1.destroy()
root.e2.destroy()
#e1.pack()
#e2.pack()
root.Button1=tk.Button(root,text="MODE1",command=enter)
root.Button1.pack()
root.Button1.place(x=200,y=200)
root.Button2=tk.Button(root,text="Enter",command=gett)#root.Button2.pack()
root.Button2.place(x=260,y=200)
root.mainloop()
答案 0 :(得分:1)
实际上问题出在这行
root.e1 = tk.Entry(root,textvariable=rpm).grid(row=0,column=1)
root.e2 = tk.Entry(root,textvariable=tim).grid(row=1,column=1)
grid方法返回None,因此,当您对内部值为None
的变量调用destroy方法之后。
相反,您想将条目分配给变量,然后将其网格化。
root.e1 = tk.Entry(root, textvariable=rpm)
root.e1.grid(row=0, column=1)
root.e2 = tk.Entry(root, textvariable=tim)
root.e2.grid(row=1, column=1)
这样就可以了。