从特定行/列获取输入

2024-09-30 10:38:39 发布

您现在位置:Python中文网/ 问答频道 /正文

(我使用的是python3.5。)
我创建了一个5x5网格,希望从某一行/列获取输入。
我以前从未使用过tkinter,而且我是编程新手。在

我创建了show按钮,所以每次用户按下它时,我都希望输入被打印出来。问题是,由于我的两个for循环,它只打印最后一个元素44,因为那是循环结束的时候。
如何在不更改for循环的情况下获得所有输入?在

sudoku = Tk()

def show_entry_fields():
    print(name[r][i].get())


i = 0  
for i in range(0,5):  
    for r in range(0,5)  
        name[r][i] = Entry(sudoku)  
        name[r][i].grid(row=r,column=i)  

Button(sodoku, text='Quit', command=sodoku.quit).grid(row=5, column=1)
Button(sodoku, text='Show', command=show_entry_fields).grid(row=5, column=2)
sodoku.mainloop()

Tags: textnameinfieldsforshowrangecolumn
1条回答
网友
1楼 · 发布于 2024-09-30 10:38:39

store the variable in a 2D list or a dictionary


# dictionary style  
root = {0:Tk()}
n = 5
m = 5
size = (n,m)

for i in range(1,n+1):
    for j in range(1,m+1):
        root[i,j] = Entry(sudoku)
        root[i,j].grid(row = i, column = j)

我习惯用字典来存储tkObject*(Frame、Grid等…)

当你想要得到所有对象的第一个层次的时候,就用它的根。在

在本例中,当root[0]是Tk实例时,root[1,*]将给出网格的第一行。在


事实上,你也可以这样做:

^{pr2}$

我还没有测试这个代码。所以,小心点。在


测试一下:
import tkinter as tk
root = tk.Tk()
grid = [[tk.Entry().grid(row=i,column=j) for i in range(5)] for j in range(5)]
input()

相关问题 更多 >

    热门问题