繁体   English   中英

wx.Panel中的wx.Panel

[英]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 ,但将wxPanelwxWindow作为另一个wxPanel的唯一子代是非常罕见的,因为它根本不会从任何意义上讲,您只是在浪费一个窗口而已(窗口是相对繁重的资源,因此您不应该这样做)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM