【问题标题】:How to have border of different sizes in wxwidgets?如何在 wxwidgets 中有不同大小的边框?
【发布时间】:2015-11-18 18:09:08
【问题描述】:

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

我的要求是我想要左边框 10 和右边框 20 ,我如何通过标志组合来实现这一点或者是一种方法?

【问题讨论】:

    标签: alignment wxpython wxwidgets


    【解决方案1】:

    我认为您无法按照自己想要的方式进行操作。
    您必须从命令中省略 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()
    

    【讨论】:

    • 谢谢,很有帮助
    猜你喜欢
    • 2021-10-19
    • 2014-05-08
    • 2014-05-22
    • 1970-01-01
    • 2011-01-01
    • 2015-01-27
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    相关资源
    最近更新 更多