gpt4 book ai didi

python - 批量创建小部件

转载 作者:行者123 更新时间:2023-12-01 02:21:56 25 4
gpt4 key购买 nike

我正在使用 tkinter 为我的一个类创建一个计算器,并且我已经在网格布局中制作了大约 20 个标签,除了名称和明显的行之外,每次都使用几乎相同的代码行数字。我只是想知道是否有一种标准方法可以快速有效地制作这样的标签,或者是否有人有一种快速的方法来打破乏味?

例如,这就是我的“代码”的基本样子。

label0 = tk.Label(frame,
text="Label0")
label0.grid(row=0,
column=0,
sticky="E")

label1 = tk.Label(frame,
text="Label1")
label1.grid(row=1,
column=0,
sticky="E")

...

labeln = tk.Label(frame,
text="Labeln")
labeln.grid(row=n,
column=0,
sticky="E")

我尝试创建所有标签名称的列表或库,然后说类似的内容

labelnames = ["label0",
"labebl1",
...,
"labeln"]

for i in len(labelnames):
labelx = tk.Label(frame,
text=labelnames[i])
labelx.grid(row=i,
column=0,
sticky="E")

这是可行的,但这样做的目的是学习,我想知道是否有标准或“正确”的方法来做到这一点。我倾向于远离使用类,因为我仍然不理解它们(我知道这很讽刺),但我想了解这对它们来说是否是更好的用途。

这种方法给我带来的一个问题是,我有一个与使用类似循环创建的每个标签相对应的输入框,并且我不确定如何以这种方式从条目中获取输入。

最佳答案

你做得对。我们可以使用 enumerate 使其变得更简洁:

labels = []
for i, label in enumerate(labelnames):
labelx = tk.Label(frame, text=label)
labelx.grid(row=i, column=0, sticky="E")
labels.append(labelx)

我还将生成的小部件添加到列表中。这样我以后就可以访问它们。

labels[2].config(text='new text') # update the text on the 3rd Label

关于python - 批量创建小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47878838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com