[英]wx.Panel in a wx.Panel
当我将wx.Panel
嵌入另一个wx.Panel
(此处ChildPanel
嵌入MyPanel
)时,默认情况下,此ChildPanel不使用父级的完整大小。 为什么?
有没有说一招ChildPanel
应该使用的全空间MyPanel
? 没有BoxSizer
可能吗?
import wx
class MyPanel(wx.Panel):
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
self.SetBackgroundColour('#00f8f8')
# ChildPanel
self.ChildPanel = wx.Panel(self)
self.ChildPanel.SetBackgroundColour('#000000')
class DrawFrame(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
MyPanel(self)
self.Show()
app = wx.App(False)
F = DrawFrame(None, title="Test", size=(500,500))
app.MainLoop()
wxFrame
是一种特殊情况,并且是唯一一个调整其唯一子项大小以完全填充其客户区域的窗口。 其他窗口(包括wxPanel
)不执行此操作,因此您需要使用sizer或将子面板手动放置在wxEVT_SIZE
处理程序中。
当然,如果您考虑一下,这是有道理的:虽然通常将wxPanel
完全覆盖wxFrame
,但将wxPanel
或wxWindow
作为另一个wxPanel
的唯一子代是非常罕见的,因为它根本不会从任何意义上讲,您只是在浪费一个窗口而已(窗口是相对繁重的资源,因此您不应该这样做)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.