from graphics import *
win = GraphWin("Hangman", 600, 600)
win.setBackground("yellow")
textEntry = Entry(Point(233,200),10)
textEntry.draw(win)
text = textEntry.getText()
testText = Text(Point(150,15), text)
testText.draw(win)
exitText = Text(Point(200,50), 'Click anywhere to quit')
exitText.draw(win)
win.getMouse()
win.close()
我试图在Python图形中从用户那里获取文本并能够使用该输入,例如操作它,在列表中搜索它等。为了测试它,我创建了一个输入窗口图形,并尝试从该输入窗口获取文本,只需在窗口中显示它,只是为了检查它是否成功获取文本。
不幸的是,它不起作用,只是显示了“点击任意位置退出”#39;然后是空窗口,尽管在其中写入文本但它什么也没做。我究竟做错了什么?
答案 0 :(得分:0)
以下内容来自documentation。
底层事件隐藏在graphics.py中的方式,当用户在Entry框中输入文本时没有信号。为了向程序发出信号,上面使用了鼠标按键。在这种情况下,鼠标按下的位置不相关,但是一旦处理完鼠标,就可以继续执行并阅读条目文本。
您在绘制条目后立即获取文本,因此它将为空。您需要等待信号,然后阅读条目。文档中的摘录说等待鼠标点击然后阅读条目。 所以尝试添加
win.getMouse()
到您的代码如下
from graphics import *
win = GraphWin("Hangman", 600, 600)
win.setBackground("yellow")
textEntry = Entry(Point(233,200),50)
textEntry.draw(win)
# click the mouse to signal done entering text
win.getMouse()
text = textEntry.getText()
testText = Text(Point(150,15), text)
testText.draw(win)
exitText = Text(Point(200,50), 'Click anywhere to quit')
exitText.draw(win)
win.getMouse()
win.close()