我是Tkinter的新手,我正在尝试使用网格管理器构建一个简单的GUI,只需按下按钮1,按钮2就会出现一个相邻的输入框。如果你然后按下按钮2,则输入框和按钮2消失。下面是GUI代码的一个切片,按钮消失了,但输入框没有:
import Tkinter
from Tkinter import *
master = Tk()
CreateTestButton = Button(master, text="Create Test", command = CreateTest, fg="red", bg="white", font="Helvetica 10 bold")
CreateTestButton.grid(column=7, row=1)
def CreateTest():
TestEntry = Entry(master, text="", width = 100).grid(row=4,columnspan=6)
Label(self, text="Enter Test Name:").grid(row=3, column=0)
SaveTestButton = Button(master, text="Save to database", command=saveTest, fg="green", bg="white", font="Helvetica 10 bold")
SaveTestButton.grid(row=4, column=5)
def saveTest():
SaveTestButton.grid_remove()
TestEntry.grid_remove() #ERROR
mainloop()
如何使用Tkinter中的网格管理器删除输入框?和其他小部件一样,我还需要通过按钮点击或事件删除列表框,标签和小部件。
此致 丹尼尔
答案 0 :(得分:2)
grid
什么都不返回;通过执行TestEntry = Entry(..).grid(...)
,TestEntry变为None
而不是Entry
对象。
替换以下行:
TestEntry = Entry(self, text="", width = 100).grid(row=4,columnspan=6)
使用:
TestEntry = Entry(self, text="", width = 100)
TestEntry.grid(row=4,columnspan=6)
完整代码
from Tkinter import *
def CreateTest():
def saveTest():
SaveTestButton.grid_remove()
TestEntry.grid_remove() #ERROR
TestEntry = Entry(master, text="", width = 100)
TestEntry.grid(row=4,columnspan=6)
Label(master, text="Enter Test Name:").grid(row=3, column=0)
SaveTestButton = Button(master, text="Save to database", command=saveTest, fg="green", bg="white", font="Helvetica 10 bold")
SaveTestButton.grid(row=4, column=5)
master = Tk()
CreateTestButton = Button(master, text="Create Test", command = CreateTest, fg="red", bg="white", font="Helvetica 10 bold")
CreateTestButton.grid(column=7, row=1)
mainloop()