如何自动生成python tkinter条目?

eqoofvh9  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(290)

我一直在用python tkinter创建条目,但我发现创建每个条目的效率非常低。如何自动创建条目并分别获取所有条目的值?

entry_word1 = tkinter.Entry(second_frame, width=30)
        entry_word1.grid(column=1, row=0)
        entry_word2 = tkinter.Entry(second_frame, width=30)
        entry_word2.grid(column=1, row=1)
        entry_word3 = tkinter.Entry(second_frame, width=30)
        entry_word3.grid(column=1, row=2)
        entry_word4 = tkinter.Entry(second_frame, width=30)
        entry_word4.grid(column=1, row=3)
        entry_word5 = tkinter.Entry(second_frame, width=30)
        entry_word5.grid(column=1, row=4)
        entry_word6 = tkinter.Entry(second_frame, width=30)
        entry_word6.grid(column=1, row=5)
        entry_word7 = tkinter.Entry(second_frame, width=30)
        entry_word7.grid(column=1, row=6)
        entry_word8 = tkinter.Entry(second_frame, width=30)
        entry_word8.grid(column=1, row=7)
        entry_word9 = tkinter.Entry(second_frame, width=30)
        entry_word9.grid(column=1, row=8)
        entry_word10 = tkinter.Entry(second_frame, width=30)
        entry_word10.grid(column=1, row=9)
xqk2d5yq

xqk2d5yq1#

下面是一个存储的示例 Entry 不使用列表的对象
并通过将每一个绑定到一个返回键来访问它们
通过回调函数 getdata 任何条目小部件都可以使用 getEntry 使用索引值。

import tkinter

master = tkinter.Tk()

second_frame = tkinter.Frame(master)
second_frame.grid(row=0, column=0, sticky='nsew')

def getdata(ev):
    print(ev.widget.get())

def getEntry( a ):
    return list( second_frame.children.values() )[ a ]

for a in range(10):
    b = tkinter.Entry(second_frame, width=30)
    b.grid(row=a, column=0, sticky='nsew')
    # important to bind each one for access
    b.bind('<Return>', getdata)

master.resizable(False, False)
master.mainloop()

相关问题