从 Python 图形中的条目 window 获取文本

Getting text from a entry window in Python graphics

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 图形中的文本,并能够使用该输入,例如对其进行操作、在列表中搜索它等。为了测试它,我创建了图形中的一个条目 window 并尝试从该条目 window 获取文本并简单地将其显示在 window 中,只是为了检查它是否成功获取了文本。

不幸的是,它不起作用,它只显示 'Click anywhere to quit',然后是空的 window,尽管在其中写入了文本,但它什么也没做。我究竟做错了什么?

以下内容来自documentation.

The way the underlying events are hidden in graphics.py, there is no signal when the user is done entering text in an Entry box. To signal the program, a mouse press is used above. In this case the location of the mouse press is not relevant, but once the mouse press is processed, execution can go on and read the Entry text.

您在绘制条目后立即获得文本,因此它是空的。您需要等待信号,然后阅读条目。文档中的这段摘录说等待鼠标单击然后阅读条目。 所以尝试添加

    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()

这是输出的样子。注意:我将 Entry 50 设为宽。