当我尝试使用wx.Frame(False)
创建一个新框架时,我收到此错误,通过callstack向下传递:
TypeError: in method 'new_Frame', expected argument 1 of type 'wxWindow *'
我认为参数应该是父窗口,但至少在C ++中,如果你不希望窗口有父窗口,你可以传递一个空指针。
如何在没有父级的情况下创建wx.Frame?
答案 0 :(得分:4)
您可以传递None
。如本例所示。
#!/usr/bin/python
# simple.py
import wx
app = wx.App()
frame = wx.Frame(None, -1, 'simple.py')
frame.Show()
app.MainLoop()
答案 1 :(得分:0)
如前所述,您可以传递None
。这是您在大多数示例中看到的正常方式和方式。我更喜欢展示一个框架类的例子:
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, parent=None, title='Test')
self.Show()
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame()
app.MainLoop()
使用wxPython定义子类时,也可以使用Python super
:
import wx
class MyFrame(wx.Frame):
def __init__(self, *args, **kwargs):
super(MyFrame, self).__init__(*args, **kwargs)
self.Show()
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame(parent=None, title='Test')
app.MainLoop()