从用户获取值后如何销毁条目小部件

时间:2020-01-11 08:28:39

标签: python-3.x tkinter

我正在编写一个程序,在按下特定的“模式”按钮后创建一个入口小部件,然后从用户那里获取输入,并想在用户按下“输入”按钮后销毁该入口小部件。 我是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()

1 个答案:

答案 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)

这样就可以了。