0

我是 python 新手,现在想尝试 wxpython,但即使一开始我也无法继续。跟随教程,

import wx
app = wx.App(False)  
frame = wx.Frame(None, wx.ID_ANY, "Hello World") 
frame.Show(True)   

在我这样做之后,新窗口一出现就会停止响应,或者我尝试单击它。然后我只能强制关闭它并重新启动编辑器。在 shell 或 IDLE 上都一样,甚至在不同的计算机上都一样(我碰巧买了一台新的)。也许自从我搜索互联网以来我做错了什么,似乎没有人遇到问题,但我无法弄清楚。

我正在使用最新的 python(x,y)。另外,如果我没记错的话,我也在我的旧电脑上尝试了 tkinter,问题是一样的。

4

1 回答 1

0

那是因为应用程序循环没有运行。通常,您还必须这样做:

app.MainLoop()

在 frame.Show() 之后。当然,现在您的控制台将运行主循环,并且在应用程序退出之前(嗯,当您的主窗口关闭时)您不会恢复控制台,这可能也不是您想要的。

我没用过python(x,y),但是看了一下,它看起来支持IPython(x,y)。如果您将其用作控制台,那么您可以这样做

%gui wx

加载后,然后不是自己创建/运行应用程序,IPython 本身实现了应用程序并以一种特殊的方式作为输入钩子进行事件处理- 这意味着它在等待您输入内容时,而不仅仅是等待,它主动轮询 gui 以查看是否有活动事件并处理它们。这也会产生一些有趣的问题,但是你可以创建窗口并显示它,它会正常工作......

于 2013-10-01T13:09:16.480 回答