我在用什么:Tkinter
lib,setattr()
function
我想要的:通过使用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
。使用pack
和grid
创建响应式应用程序要容易得多。使用place
,你必须做更多的工作,并且很容易创建一个看起来不错的UI,只适合一个特定的配置(分辨率,默认字体,窗口大小)。