【发布时间】:2017-04-23 05:19:42
【问题描述】:
我已经在这个座位表上工作了大约 2 到 3 个小时,结果我陷入了困境。当我在文本中输入一个名称、收集输入并将其分配给一个变量时,它会给我一个看起来像这样的输入
['']
我在这个问题上找不到任何东西,我想使用Text() 而不是Entry(),因为Entry() 没有高度属性。如果你能给我任何关于如何解决这个问题的提示或提示,或者对我的代码有任何其他提示,请随时告诉我如何让我的代码更好:)
输入名称时出现问题:
['']
Name Already exists
['', '']
Name Already exists
['', '', '']
Name Already exists
['', '', '', '']
代码:
#commands: add name , Run
#imports
import random
from time import sleep
from tkinter import *
#Console and background Handlers
Tables = 6
Names = []
def AddNames():
if NewNames in Names:
print("Name Already exists")
Names.append(NewNames)
print(Names)
def Random():
RandomNum = random.randrange(Tables)
if RandomNum == 0:
RandomNum = random.randrange(Tables)
return RandomNum
def run():
X = 0
for i in Names:
print(Names[X])
print("Table: " + str(Random()))
X += 1
#GUI Handler
root = Tk()
root.geometry("1024x768")
e = Text(root, bd=10, font=("Comic Sans MS", 50), width=15, height=2)
e.pack()
NewNames = e.get("1.0", 'end -1c')
AddNameButton = Button(root, text=("Add Name"), width=15, height=5, command=AddNames)
AddNameButton.pack()
root.mainloop()
【问题讨论】:
-
NewNames被初始化为一个空字符串并且从未被修改过。 -
NewNames = e.get("1.0", 'end -1c') 这里没有修改吗?
-
是的,它被设置为空字符串,因为此时用户还没有机会输入任何内容,因为它在小部件创建后大约 1 毫秒。
-
哦,所以我必须在用户按下按钮时调用添加名称?
-
哦,等一下,我可以将 e.get() 放入添加名称中。对吗?
标签: python python-3.x user-interface tkinter