Python 键入一个条目会导致将所有条目写入(Tkinter)
我正在使用Tkinter创建一个带有GUI的数独解算器桌面应用程序。我遇到的问题是当它涉及到输入板。 以下是我正在使用的代码:Python 键入一个条目会导致将所有条目写入(Tkinter),python,arrays,tkinter,Python,Arrays,Tkinter,我正在使用Tkinter创建一个带有GUI的数独解算器桌面应用程序。我遇到的问题是当它涉及到输入板。 以下是我正在使用的代码: N = 9 input = [["0" for i in range(N)] for j in range(N)] for i in range(N): for j in range(N): new_col = int(j/3) new_row = int(i/3) if (-1)**(new_
N = 9
input = [["0" for i in range(N)] for j in range(N)]
for i in range(N):
for j in range(N):
new_col = int(j/3)
new_row = int(i/3)
if (-1)**(new_col+new_row) == 1:
colour = "lightgrey"
else:
colour = "white"
entry = Entry(root, width=10, bg=colour, textvariable=input[i][j])
entry.grid(row=i, column=j)
set_button = Button(root, text="Set", command=set, padx=20, pady=10).grid(row=10,column=3, columnspan=3)
设置按钮用于设置值,然后显示实际板。
我遇到的问题是,在任何一个框中输入都会导致在其他框中输入相同的值。我不明白这是怎么发生的。我的数组声明可能有错吗?
另外,我选中了,即使在单击“设置”之后,数组也没有改变。考虑这行代码:
entry = Entry(root, width=10, bg=colour, textvariable=input[i][j])
由于您初始化输入的方式
,上述代码与此相同:
entry = Entry(root, width=10, bg=colour, textvariable="0")
因此,所有小部件对于textvariable
都具有相同的值,因此它们都链接在一起并共享相同的值内存
每个条目都需要一个唯一的textvariable
,该选项的值需要是一个tkinter变量对象,例如StringVar
也就是说,您很少需要使用
textvariable
。因为您没有向变量添加跟踪,所以它们基本上是不必要的。我建议您删除textvariable
,而是将条目保存在数组中。然后可以调用条目的get
方法来获取值。首先,textvariable
参数必须是tkinter.StringVar()
而不是基本的pythonstr
。其次,为什么不将条目放入数组中?您可以使用.get()
获取用户的输入,.delete(0,“end”)
清除条目,并使用.insert(“end”)
在条目末尾插入文本