使用tkinter产生n个变量的n个标签

时间:2019-03-11 15:04:28

标签: python tkinter label

我希望实现一个顶层窗口,上面有可控制数量的标签小部件。在我的第一个窗口中,有一个比例小部件,可用于选择顶层标签的数量。这些标签然后需要实时更新。我有用于生成顶层窗口以及使用 After 实用工具动态更新其上一个标签的代码。

我不知道如何产生一组可变的标签,然后可以在代码中稍后对其进行更新。我的第一个想法是做这样的事情:

for i in range(n):
  label = Label(top_level, text = "Text")
  label.pack()

问题在于它如何生成n次相同的标签,这意味着您不能独立(或根本)不更新它们。这意味着我无法实现 after 参数来使用实时数据更新它们。解决此问题的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

  

问题在于它如何生成n次相同的标签

这是不正确的。您要做创建了n个不同的标签,但是在循环的每次迭代中,您都覆盖了对前一个标签的引用。因此,当循环结束时,您只能引用最后一个标签。

您可以做的是将不同的标签保存在列表中。这样,您可以使用它们的索引分别访问它们:

CustomJS

答案 1 :(得分:1)

  

问题:如何生成一组可变的标签,以后可以在代码中对其进行更新

以下示例允许在Labels小部件中更新全部 Toplevel

  

注意:如果您的Toplevel中还有其他小部件,请在Frame上使用Label并循环self.frame.children

要更新的数据必须是具有预定义dict的{​​{1}}。

keys

使用Python测试:3.5