【问题标题】:Getting text from a entry window in Python graphics从 Python 图形中的输入窗口获取文本
【发布时间】:2016-01-05 00:42:46
【问题描述】:
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 图形中的用户那里获取文本并能够使用该输入,例如操作它、在列表中搜索它等。为了测试它,我在图形中创建了一个输入窗口并试图从该输入窗口获取文本并简单地显示在窗口中,只是为了检查它是否成功获取文本。

不幸的是,它不起作用,它只显示“单击任意位置退出”,然后显示空窗口,尽管在其中写入文本,但它什么也不做。我究竟做错了什么?

【问题讨论】:

    标签: string python-3.x text zelle-graphics


    【解决方案1】:

    以下来自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()
    

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

    【讨论】:

      猜你喜欢
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      相关资源
      最近更新 更多