0

任何人都可以帮我弄清楚我做错了什么我对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
4

1 回答 1

0

此代码在带有 wxPython 2.8.12.1 和 Python 2.6.6 的 Windows 7 上为我运行。您使用的是什么操作系统和 Python 版本?当我在 IDLE 中运行我的代码时,我不时看到此错误消息。如果你正在这样做,那就不要这样做。Tkinter 的主循环(这是 IDLE 的组成部分)会干扰其他 GUI 工具包的主循环​​。

closebutton 方法存在一个问题,它调用了一个不存在的“关闭”方法。

于 2012-12-17T15:12:25.163 回答