如何在没有父级的情况下创建wx.Frame?

时间:2016-02-06 00:08:08

标签: python window wxpython

当我尝试使用wx.Frame(False)创建一个新框架时,我收到此错误,通过callstack向下传递:

TypeError: in method 'new_Frame', expected argument 1 of type 'wxWindow *'

我认为参数应该是父窗口,但至少在C ++中,如果你不希望窗口有父窗口,你可以传递一个空指针。

如何在没有父级的情况下创建wx.Frame?

2 个答案:

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