【问题标题】:How can I create a wx.Frame without a parent?如何在没有父级的情况下创建 wx.Frame?
【发布时间】:2016-02-06 00:08:07
【问题描述】:

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

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

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

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

【问题讨论】:

  • 尝试使用None 而不是False

标签: python window wxpython


【解决方案1】:

你可以通过None。如本例所示。

#!/usr/bin/python

# simple.py

import wx

app = wx.App()

frame = wx.Frame(None, -1, 'simple.py')
frame.Show()

app.MainLoop()

【讨论】:

    【解决方案2】:

    如前所述,您可以传递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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-20
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多