任何人都可以帮我弄清楚我做错了什么我对GUI的经验很少。 代码:
import wx
class bucky(wx.Frame):
#constructor
def __init__(self,parent,id):
wx.Frame.__init__(self,parent,id,'Frame aka window',size=(300,200))
panel=wx.Panel(self)
button=wx.Button(panel,label="exit",pos=(130,10),size=(60,60))
self.Bind(wx.EVT_BUTTON, self.closebutton,button)
self.Bind(wx.EVT_CLOSE, self.closewindow)
def closebutton(self,event):
self.close(True)
def closewindow(self,event):
self.Destroy()
if __name__=='__main__':
app=wx.PySimpleApp()
frame=bucky(parent=None,id=-1)
frame.Show()
app.MainLoop()
错误:
PyNoAppError: The wx.App object must be created first!
win32ui.error: Error in Command Message handler for command ID 36864, Code 0
答案 0 :(得分:0)
此代码在Windows 7上运行,带有wxPython 2.8.12.1和Python 2.6.6。您使用的操作系统和Python版本是什么?我在IDLE中运行代码时不时看到此错误消息。如果你这样做,那就不要。 Tkinter的主循环(这是IDLE的制作)会干扰其他GUI工具包的主循环。
closebutton方法存在一个问题,即它调用一个不存在的“close”方法。