代码之家  ›  专栏  ›  技术社区  ›  Mark

更改“批量生产”标签的文本

  •  -1
  • Mark  · 技术社区  · 7 年前

    Hy All公司, 我正在为数据库创建一个布局,并制作了一个大画布,其中包含行,在其中生成较小的画布(作为单元格),以包含数据的标签。看起来不错,但问题是,由于画布和标签小部件的这种“大规模创建”,它们都无法保持优衣库的可寻址性,在for循环中创建时,它们都以相同的变量命名。你知道如何在创建过程中标记/寻址它们,以便我以后可以编辑它们吗?

    for f in range(15)
    z = z+1
    f = Label(someFrame, width = 45 if  z < 4  else 12, text = f, borderwidth=2, relief="groove", bg = "#E5E5E5" if Color == True else "#B2B2B2" )
    f.pack(side = LEFT)
    

    这看起来可能有点混乱,但您至少了解了小部件是如何创建的,我的问题是什么。

    2 回复  |  直到 7 年前
        1
  •  1
  •   uwain12345    7 年前

    您可以将小部件存储在字典中。类似这样:

    widget_dict = {}
    for idx in range(10):
        widget_dict['abc' + str(idx)] = label(root, ...)
    

    然后,您可以通过其字典键访问每个小部件:

    widget_dict[abc2].config(text='Banana')
    
        2
  •  0
  •   Bob    7 年前

    在for循环之前创建一个列表。然后在for循环内部,只需将每个标签附加到列表中。或者你可以使用字典来存储它们,这取决于你想如何处理它们。