Python: wxPython: 让StaticBox水平拉伸以适应框架

3 投票
1 回答
1077 浏览
提问于 2025-04-17 08:01

我该怎么把一个静态框拉伸到框架的宽度呢?

代码:

class XPanel(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, -1)

        self.box = wx.StaticBox(self, -1, "X CONTROL PANEL")
        self.bsizer = wx.StaticBoxSizer(self.box, wx.VERTICAL)

        self.t = wx.StaticText(self, -1, "X command: ")
        self.cmdtext = wx.TextCtrl(self, -1, "")
        self.itpsend_btn = wx.Button(self, -1, "  Send  ")
        self.bsizer.Add(self.t, 0, wx.TOP|wx.LEFT, 10)
        self.bsizer.Add(self.cmdtext, 0 , wx.ALL|wx.EXPAND)
        self.bsizer.Add(self.itpsend_btn, 0, wx.ALL|wx.CENTER)

        self.border = wx.BoxSizer()
        self.border.Add(self.bsizer, -1, wx.EXPAND|wx.ALL, 25)
        self.SetSizer(self.border)

我现在得到的是这个:

在这里输入图片描述

但是我希望它能拉伸到框架的宽度。

请教教我。谢谢。

1 个回答

1

你的XPanel设置是对的。问题不在XPanel,而是在装着这个面板和其他面板的框架里(从你的图片来看,至少还有一个额外的面板)。

你需要在这个框架里告诉面板要扩展并填满整个框架。所以,你需要使用wx.EXPAND,像这里展示的那样:

enter image description here

撰写回答