我怎样才能有多个文本输入变量?

时间:2014-12-15 14:23:28

标签: python tkinter

我在python中遇到一个问题,我在建一个用户名/密码系统,但我不能在输入框中输入多个变量。

问题在于:

mEntry1 = Entry(mGui, textvariable = ment).grid(column = 0, row = 2, sticky = W)
mEntry2 = Entry(mGui, textvariable = ment).grid(column = 0, row = 4, sticky = W)

输入框总是有相同的写入,我无法更改或文本变量,否则我会收到错误。如何为不同的变量分配输入?

2 个答案:

答案 0 :(得分:3)

两个问题:

  • 如果您在同一行上分配一个小部件并grid,则该变量将为None,因为这是grid返回的内容。在单独的行上分配和网格。
  • 每个条目都应该有一个单独的textvariable。

mEntry1 = Entry(mGui, textvariable = ment1)
mEntry2 = Entry(mGui, textvariable = ment2)
mEntry1.grid(column = 0, row = 2, sticky = W)
mEntry2.grid(column = 0, row = 4, sticky = W)

奖金样式提示:尝试选择反映UI元素目的的变量名称。例如:

username_entry = Entry(mGui, textvariable = username_var)
password_entry = Entry(mGui, textvariable = password_var)
username_entry.grid(column = 0, row = 2, sticky = W)
password_entry.grid(column = 0, row = 4, sticky = W)

这将更容易识别哪些变量做什么。当你在六个月后回来添加新功能时,你会感谢你过去的自我让事情变得可以理解。

答案 1 :(得分:0)

我相信这是因为两个条目都使用相同的变量,所以当您编写一个条目时,您会在另一个条目中使用它。您应该创建第二个变量:

 ment1=StringVar()
 ment2=StringVar()
 mEntry1 = Entry(mGui, textvariable = ment1).grid(column = 0, row = 2, sticky = W)
 mEntry2 = Entry(mGui, textvariable = ment2).grid(column = 0, row = 4, sticky = W)