我目前正在阅读一本书并使用PyScripter。一切都很好,直到我开始处理GUI的部分。
基本上,当我启动程序时,它立即没有响应。一部分是制作一个程序,用户点击窗口中的3个点,然后通过连接点形成一个三角形。一旦形成三角形,它就会停止响应。所以它等待程序要做的任何事情然后搞砸了。
任何帮助都将不胜感激,谢谢。
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的工具包,以便让初学者轻松上手。
答案 0 :(得分:1)
实际上,它并没有搞乱#39;你忘了在win.getMouse()之后输入win.close()。
答案 1 :(得分:0)
几乎可以保证,主事件循环没有运行。如何执行此操作取决于您使用的GUI工具包,但这样做是有问题的,因为一旦启动事件循环,它将接管您的控制台,直到它退出。
可能最简单的方法是切换到IPython(http://ipython.org);一旦你启动控制台,你就可以做到
%gui wx
(或qt,或者tk,或者你正在使用的任何gui工具包)它将在后台启动app循环,让你进行实验。
这使用了一个python inputhook,完全有可能从IPython中窃取该代码并在pyscripter中使用它,如果你愿意的话。可能有一种方法可以使它们一起工作,但不确定。