[英]How to print into python tkinter entry field by pressing a button?
[英]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.