如何在 wxwidgets 中有不同大小的边框?

How to have border of different sizes in wxwidgets?

通常当我们将特定的小部件添加到 wxwidgets 中的 sizer 时,我们将对齐和边框标志指定为 ( .... ,wxALIGN_RIGH | wxLEFT | wxRIGHT , 10 )

我的要求是左边框为 10 ,右边框为 20 ,如何使用标志组合实现此目的或有什么方法可以实现?

我不认为你可以按照你想要的方式去做。
您必须从命令中省略 wx.RIGHT 并在框中添加一个额外的虚拟小部件:

   hbox.Add((dummy,-1, wx.LEFT,20))   

如果尝试在垂直框中进行:

   vbox.Add((-1, 20))    

例如

#!/usr/bin/python
# -*- coding: utf-8 -*-

# border.py

import wx

class Example(wx.Frame):

    def __init__(self, parent, title):
        super(Example, self).__init__(parent, title=title, 
            size=(260, 180))

        self.InitUI()
        self.Centre()
        self.Show()     

    def InitUI(self):

        panel = wx.Panel(self)

        panel.SetBackgroundColour('#4f5049')
        vbox = wx.BoxSizer(wx.VERTICAL)
        hbox = wx.BoxSizer(wx.HORIZONTAL)

        midPan = wx.Panel(panel)
        midPan.SetBackgroundColour('#ededed')
        dummy = wx.StaticText(panel, wx.ID_ANY, "")
        midPan2 = wx.Panel(panel)
        midPan2.SetBackgroundColour('#1f1f1f')

        hbox.Add(midPan, -1, wx.LEFT|wx.TOP, border=10 )
        hbox.Add(dummy,-1, wx.LEFT,border=20)
        hbox.Add(midPan2, -1, wx.RIGHT, border=10)
        vbox.Add(hbox)
        panel.SetSizer(vbox)


if __name__ == '__main__':

    app = wx.App()
    Example(None, title='Border')
    app.MainLoop()