我已经启动并运行了一个小型 wxPython 程序(Python 版本 2.7、wxPython 2.8),但它只显示灰色屏幕和左上角按钮的一小部分。
前几天我遇到了同样的问题,我发现这是因为我运行了 self.SetSizer() 而不是 self.panel.SetSizer()。但现在它正在发生,即使我这次确保避免犯这个错误。我在这里想念什么?
我已经启动并运行了一个小型 wxPython 程序(Python 版本 2.7、wxPython 2.8),但它只显示灰色屏幕和左上角按钮的一小部分。
前几天我遇到了同样的问题,我发现这是因为我运行了 self.SetSizer() 而不是 self.panel.SetSizer()。但现在它正在发生,即使我这次确保避免犯这个错误。我在这里想念什么?
问题是育儿问题。您需要将面板的所有小部件设为子级。面板应该是框架的唯一子级。在您的情况下,您将面板和 mediaCtrl 小部件设置为框架的子级。如果您将媒体控件实例更改为以下内容,它应该可以工作:
self.media_control = wx.media.MediaCtrl(self.apanel,
style=wx.SIMPLE_BORDER,
szBackend=wx.media.MEDIABACKEND_DIRECTSHOW)
请注意,MediaCtrl 是不可见的。您可能必须将其添加到 sizer 以使其完全正常工作。
尝试设置绝对:
self.apanel = wx.Panel(self, -1, size=(640, 480))
或使用函数 GetBestSize()
self.apanel = wx.Panel(self, -1, size=self.GetBestSize())
我在py27中运行成功