在 Tkinter 中创建和使用大量具有非预设名称的对象,Python

Creating and using a large number of objects with a non-preset name in Tkinter, Python

我正在使用的Tkinter 库,setattr() 函数

我想要的:通过使用 for 循环创建一些带有一些参数和大致相似名称的小部件。然后,我希望能够使用相同的循环设置它们的位置

我现在的情况:

class Window(Tk):
    def __init__(self):
    Tk.__init__(self)
    for i in range(n):
        setattr(Label(self, text=f"name{i}", OTHER_OPTIONS), f"name{i}", _value)
        name{i}.place(y=0+10*i)

我希望看到的内容:从 name0 到 nameN 的一列文本,每列之间有 10 个单位

我需要什么?:创建一个函数,我可以在其中发送参数,例如对象名称、文本、背景和其他标签选项

提前感谢您的回答!

你让这件事变得比需要的更难。只需将标签存储在列表或字典中。

self.labels = []
for i in range(n):
    label = Label(self, ...)
    self.labels.append(label)

我也强烈反对place。使用 packgrid 创建响应式应用程序要容易得多。使用 place 你需要做更多的工作,并且很容易创建一个看起来不错的 UI 只在一种特定配置下看起来不错(分辨率,默认字体,window 大小)。