看看这段Python代码问题出在哪

悲酥清风 2009-09-10 05:10:01
照着书上写的,执行时报错(Python2.6)
import wx
class InsertFrame(wx.Frame):
def __init__(self,parent,id):
wx.Frame.__init__(self,parent,id,'Frame With Button',size=(300,100))
panel = wx.Panel(self)
button = wx.Button(panel,label="Close",pos=(125,20),
size=(50,50))
self.Bind(wx.EVT_BUTTON,self.OnCloseMe,button)
self.Bind(wx.EVT_CLOSE,self.OnCloseWindow)

def OnCloseMe(self,event):
self.Close(True)

def OnCloseWindow(self,event):
self.Destroy()

if __name__=='__main__':
app = wx.PySimpleApp()
frame = InsertFrame(parent=None,id=-1)
frame.Show()
app.MainLoop()

报错信息如下:
Traceback (most recent call last):
File "D:\Python26\test\wx\button.py", line 19, in <module>
frame = InsertFrame(parent=None,id=-1)
File "D:\Python26\test\wx\button.py", line 4, in __init__
wx.Frame.__init__(self,parent,id,'Frame With Button',size=(300,100))
File "D:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\_windows.py", line 505, in __init__
_windows_.Frame_swiginit(self,_windows_.new_Frame(*args, **kwargs))
PyNoAppError: The wx.App object must be created first!
刚开始学,还不太懂
...全文
388 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
icosagon 2009-09-14
  • 打赏
  • 举报
回复
wx.Frame.__init__(self,parent,id,'Frame With Button',size=(300,100))
放在def __init__(self,parent,id):的最末
chenzhp 2009-09-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 thy38 的回复:]
这段代码只能在CMD窗口输入python test.py运行(当然还有其它方法),因为IDLE是用Tkinker开发的,它会和wxWidget的mainloop()冲突。

或者你拷贝到wxPython自带的pyCrust中也行,因为它也是用wxWidget开发的,不会有以上的冲突。
[/Quote]。
thy38 2009-09-12
  • 打赏
  • 举报
回复
这段代码只能在CMD窗口输入python test.py运行(当然还有其它方法),因为IDLE是用Tkinker开发的,它会和wxWidget的mainloop()冲突。

或者你拷贝到wxPython自带的pyCrust中也行,因为它也是用wxWidget开发的,不会有以上的冲突。
nietsche 2009-09-10
  • 打赏
  • 举报
回复
这段代码是没有错误的!
app = wx.PySimpleApp()就已经使程序ok了。
(运行时,不要一行一行的输入,而是应该保存后再运行)。
DarkChampion 2009-09-10
  • 打赏
  • 举报
回复
要在PythonWin中运行吧,我在PythonWin中运行没问题
悲酥清风 2009-09-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cppfaq 的回复:]
你的ide 是IDLE么?
显式地调一下wx.App()呢?



[/Quote]
是的,IDLE
改成wx.App()也是同样的错误
能不能帮我编译一下?
cppfaq 2009-09-10
  • 打赏
  • 举报
回复
你的ide 是IDLE么?
显式地调一下wx.App()呢?



37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧