繁体   English   中英

如何添加带有按钮的新条目字段? 条目字段由 Python Tkinter 中的循环创建

[英]How can I add a new Entry field with a Button? The Entry field was created by a loop in Python Tkinter

在此处输入图像描述

我创建了条目列,我想通过单击按钮添加新列。 问题是我通过 for 循环创建了列。 我不知道应该如何用 function 触摸原始循环。

我的代码是这样的:

list = ['Label1', 'Label2', 'Label3', 'Label4', 'Label5', 'Label6', 'Label7', 'Label8', 'Label9']

def some_def():
    myEntry_loop.grid(row=j, column=k + 1)

for j in range(len(list)):
    for k in range(3):
        myLab = Label(root, text=list[j])
        myLab.grid(row=j, column=0, sticky=E)
        myEntry_loop = Entry(root)
        myEntry_loop.grid(row=j, column=k + 1, pady=10, padx=10)

myButton = Button(root, text="Add New Filed", command=some_def)
myButton.grid(row=10, column=4)

我相信您需要为 y 轴定义一个当前值。 另外,我不太明白“列表”的用法。 我建议只创建 y 轴,然后在该 y 轴上网格化新条目。

但是谈到你现在的代码,我没看到你在哪里定义了变量j和k,而且你还需要每次将k加一,而不是只说k+1。

首先,我想强调您不应该使用变量名作为保留字,如list Now,来满足您的要求。 这是我写的

li = ['Label1', 'Label2', 'Label3', 'Label4', 'Label5', 'Label6', 'Label7', 'Label8', 'Label9']
from tkinter import *
root = Tk()
col=4
def some_def():
    global col
    for j in range(len(li)):
        myEntry_loop = Entry(root)
        myEntry_loop.grid(row=j, column=col, pady=10, padx=10)
    col+=1
            

for j in range(len(li)):
    myLab = Label(root, text=li[j])
    myLab.grid(row=j, column=0, sticky=E)
    for k in range(3):
        myEntry_loop = Entry(root)
        myEntry_loop.grid(row=j, column=k + 1, pady=10, padx=10)

myButton = Button(root, text="Add New Filed", command=some_def)
myButton.grid(row=10, column=4)

在每个按钮上单击都会创建新列。 由于您在 for 循环中使用了相同名称的条目小部件,因此我只使用了它。 您应该知道,如果您想提取内容,您将无法使用 get() 之类的方法,因为您已将所有小部件定义为同名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM