我希望实现一个顶层窗口,上面有可控制数量的标签小部件。在我的第一个窗口中,有一个比例小部件,可用于选择顶层标签的数量。这些标签然后需要实时更新。我有用于生成顶层窗口以及使用 After 实用工具动态更新其上一个标签的代码。
我不知道如何产生一组可变的标签,然后可以在代码中稍后对其进行更新。我的第一个想法是做这样的事情:
for i in range(n):
label = Label(top_level, text = "Text")
label.pack()
问题在于它如何生成n次相同的标签,这意味着您不能独立(或根本)不更新它们。这意味着我无法实现 after 参数来使用实时数据更新它们。解决此问题的正确方法是什么?
答案 0 :(得分:1)
问题在于它如何生成n次相同的标签
这是不正确的。您要做创建了n个不同的标签,但是在循环的每次迭代中,您都覆盖了对前一个标签的引用。因此,当循环结束时,您只能引用最后一个标签。
您可以做的是将不同的标签保存在列表中。这样,您可以使用它们的索引分别访问它们:
CustomJS
答案 1 :(得分:1)
问题:如何生成一组可变的标签,以后可以在代码中对其进行更新
以下示例允许在Labels
小部件中更新全部 Toplevel
。
注意:如果您的
Toplevel
中还有其他小部件,请在Frame
上使用Label
并循环self.frame.children
。
要更新的数据必须是具有预定义dict
的{{1}}。
keys
使用Python测试:3.5