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