Não é possível obter botões para trabalhar wx.python (ubuntu 12.04 LTS)

0
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()

Oi pessoal, o código acima é apenas para criar um botão no wxpython.mas sempre que eu executar o código, apenas o quadro aparece, sem botões ou qualquer coisa dentro, apenas em branco.Eu tentei reinstalar o módulo wxpython mas sem sorte. Minha segunda pergunta é sempre que eu tento inicializar say, title = 'widget', size = (300,100) no construtor de quadro como wx.Frame.init (self, parent, id, title = 'widget', tamanho = (300,100) não funciona, eu tenho que fazê-lo através desta linha: frame = wx.Frame (pai = None, id = -1, title = 'Widget', tamanho = (300.100)) por que isso é so.thanks.

    
por user2983686 24.04.2014 / 16:00

1 resposta

0

Você usa o quadro errado. Você cria o padrão wx.Frame , não seu Frame(wx.Frame) .
Mudei o nome para MyFrame para tornar este nome mais unico.

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()
    
por furas 03.05.2014 / 03:59