簡體   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