无法使按钮工作 wx.python(ubuntu 12.04 LTS)

无法使按钮工作 wx.python(ubuntu 12.04 LTS)
try:
    import wx
except ImportError:
    print 'Module not found'

class Frame(wx.Frame):
    def __init__(parent,id ):
        wx.Frame.__init__(self,parent,id,)
        panel = wx.Panel(self)
        button = wx.Button(panel,label = 'close',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.App()
    frame = wx.Frame(parent = None, id =-1,title = 'Widget',size = (300,100))
    frame.Show()
    app.MainLoop()

大家好,上面的代码只是在 wxpython 中创建一个按钮。但是每次我运行代码时,只出现框架,里面没有按钮或任何东西,只是空白。我试图重新安装 wxpython 模块,但没有成功。我的第二个问题是,每当我尝试在框架构造函数中初始化 title = 'widget'、size= (300,100) 时,例如 wx.Frame.init(self,parent,id,title ='widget',size = (300,100) 它不起作用,我必须通过以下行来完成:frame = wx.Frame(parent = None, id =-1,title = 'Widget',size = (300,100)) 为什么会这样。谢谢。

答案1

您使用了错误的框架。您创建的是标准wx.Frame,而不是您的Frame(wx.Frame)
我将名称更改为,MyFrame以使该名称更加独特。

try:
    import wx
except ImportError:
    print 'Module not found'

class MyFrame(wx.Frame):
    def __init__(self, parent,id ):
        wx.Frame.__init__(self, parent, id,)
        panel = wx.Panel(self)
        button = wx.Button(panel, label='close', 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): # not OncloseWindow
        self.Destroy()

if __name__ == '__main__':
    app = wx.App()
    #frame = wx.Frame(parent=None, id=-1, title='Widget', size=(300,100)) 
    frame = MyFrame(parent=None, id=-1)
    frame.Show()
    app.MainLoop()

相关内容