我正在寻找一种方法来创建小部件(最有可能是一个标签)和令人作呕,并警告说,他们可以删除或解包以后。
我可以很好地生成小部件,但是它们没有被指定名称。如果可能的话,我不知道如何删除某个匿名小部件。
我的第一个直觉是用一个稳定的约定动态地创建变量名,但这可能不必要地打开一个蠕虫罐头。这个想法表达如下。我希望能够删除某个按钮小部件,而不知道在运行时我将处理多少。谢谢您。
from Tkinter import *
import time
import ttk
def onDoubleClick(event):
item = t.selection()
#print "you clicked on", t.item(item,"text")
if (t.item(item,"text")=="Start IO"):
Button2 = Button(frame2,text="Button2",command=but).pack()
def but():
pack_forget()
root=Tk()
root.geometry("800x300")
frame1 = Frame(root)
frame2 = Frame(root)
t=ttk.Treeview(frame1)
t.heading("#0",text="Test steps")
t.insert("",0,"IO",text="IO")
t.insert("IO","end",text="Start")
t.bind("<Double-1>", onDoubleClick)
t.pack()
frame1.pack(side=LEFT)
frame2.pack(side=LEFT)
编辑:我的功能请求显然是短视的。我的最终目标是拥有一个标签小部件和一个并排的按钮,这两个小部件都包含了测试启动程序中的“步骤”。单击该按钮将从图形用户界面中删除其自身及其各自的标签。我可以创建两个窗口小部件并在按钮的回调上删除其中一个,但是要打包,请忘记这两个窗口小部件,我认为我需要def一个函数。我相信我的问题在于将正确的引用传递到def removeStep下面的用例图:…[如果这可以解决,请随时通知我,我只是找不到它]
测试:制作PB&J
步骤0:获取面包[移除步骤]
步骤1:涂抹PB[移除步骤]
步骤2:涂抹果冻[移除步骤]
您需要将动态创建的小部件存储在列表中。有点像
然后你就可以用,比如说
编辑:关于您的用例的更多信息,我可能会
然后只需创建RemovableTask的实例,并将其命名为“Step 0:Get Bread”,然后将其网格化或打包到列中。其他一切都会自动处理。
你有几个选择。第一个选项是将动态创建的按钮存储在列表中。然后,您可以随时添加/删除按钮--并保留对所有按钮的引用。干净简单。
第二种选择是在创建了按钮(并有对它的引用)之后使用
config
方法来销毁小部件——或者至少将其从显示中删除(widget.pack_forget
实际上不会销毁小部件!以后可以重新包装。要实际销毁小部件,您需要改为调用widget.destroy
)。。。以下内容:相关问题 更多 >
编程相关推荐