测试程序时Python窗口是否立即没有响应?
我目前正在阅读一本书并使用PyScripter。在我开始处理GUI之前,一切都很好 基本上,当我启动一个程序时,它不会立即响应。其中一部分是制作一个程序,用户在窗口中单击3个点,然后通过连接这些点生成一个三角形。一旦三角形形成,它就停止响应。因此,它会等待程序要做的事情完成,然后把事情搞砸 任何帮助都将不胜感激,谢谢测试程序时Python窗口是否立即没有响应?,python,user-interface,window,Python,User Interface,Window,我目前正在阅读一本书并使用PyScripter。在我开始处理GUI之前,一切都很好 基本上,当我启动一个程序时,它不会立即响应。其中一部分是制作一个程序,用户在窗口中单击3个点,然后通过连接这些点生成一个三角形。一旦三角形形成,它就停止响应。因此,它会等待程序要做的事情完成,然后把事情搞砸 任何帮助都将不胜感激,谢谢 from graphics import * def main(): win = GraphWin("Draw a Triangle") win.setCoor
from graphics import *
def main():
win = GraphWin("Draw a Triangle")
win.setCoords(0.0, 0.0, 10.0, 10.0)
message = Text(Point(5, 0.5), "Click on three points")
message.draw(win)
p1 = win.getMouse()
p1.draw(win)
p2 = win.getMouse()
p2.draw(win)
p3 = win.getMouse()
p3.draw(win)
triangle = Polygon(p1,p2,p3)
triangle.setFill("peachpuff")
triangle.setOutline("cyan")
triangle.draw(win)
message.setText("click anywhere to quit")
win.getMouse()
main()
编辑:用代码更新。正如我之前所说,我正在阅读的这本书的作者从tk制作了一个工具包,只是为了让初学者更容易使用。几乎可以保证,主事件循环没有运行。如何做到这一点取决于您使用的GUI工具包,但这样做是有问题的,因为一旦启动事件循环,它将接管您的控制台,直到退出 处理这个问题最简单的方法可能是切换到IPython();一旦启动控制台,就可以执行以下操作
%gui wx
(或者qt,或者tk,或者您正在使用的任何gui工具包),它将在后台启动应用程序循环,允许您进行实验
这使用了一个python inputhook,如果您愿意,完全可以从IPython窃取该代码并在pyscripter中使用它。也许有办法让他们一起工作,但不确定。事实上,这并没有“搞砸”。你只是忘了在win.getMouse()之后放win.close()。如果需要帮助,请发布一些代码。我想教程是这样的。我在控制台中运行了您的脚本,对我来说效果很好。如果您在PyScripter中运行它,那么问题可能就出在这方面,而不是脚本本身。我不得不把文件从他的网站上删除。我通过查看文件知道它来自tk,如果这有什么区别的话。@user2912641。见我对你问题的评论。这与事件循环无关-您使用的
图形
模块工作正常。