如何使用条目小部件在 tkinter 中制作电子表格?

问题描述

我正在制作一个应用程序,用户可以在其中使用在 tkinter 中制作的电子表格来更改数据库中的值,但是我对如何执行此操作感到非常困惑。我用 while 循环创建了输入框,如下所示:

 while o<numberofstudents:
                global eTrial
                eTrial = Entry(rootOC,width=3)
                eTrial.place(x=200+y*43,y=50 + 25 * o)
                eTrial.delete(0,"end")
                eTrial.insert(0,"100")
                o=o+1

如何从使用 for 循环创建的每个单独的输入框中获取数据。 我试过 .get() 但它似乎不起作用

有没有更有效的方法来做到这一点,或者至少有一个解决方案?

解决方法

eTrial 仅指向已创建的最后一个 Entry。有很多方法可以做到这一点,这取决于您想要做什么。下面我制作了 eTrial 一个列表并添加了一个 Button 以将列表的当前内容打印到终端。

import tkinter as tk

o = 0
numberofstudents = 5
columns = 3

rootOC = tk.Tk()

frame = tk.Frame( rootOC )
frame.grid()
widgets = []
for r in range( 1,1+numberofstudents ):
    wid_row = []
    for col in range( columns ):
        obj = tk.Entry( frame,width=3 )
        obj.grid( row = r,column = col )
        obj.delete(0,"end")
        obj.insert(0,str( 100*r+col ))
        wid_row.append( obj )
    widgets.append( wid_row )

def onclick():
    for row in widgets:
        for item in row:
            print( item.get(),end = '  ' )
        print()

tk.Button( rootOC,text = 'Print input',command = onclick ).grid()

rootOC.mainloop()

如果我在 GUI 打开后立即单击“打印输入”,我会得到:

100  101  102  
200  201  202  
300  301  302  
400  401  402  
500  501  502