首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WX StaticBoxSizer/Sizer边框宽度

WX StaticBoxSizer/Sizer边框宽度
EN

Stack Overflow用户
提问于 2013-07-09 23:50:54
回答 1查看 1.4K关注 0票数 0

我已经做了一个小例子,我想要实现的是一个StaticBoxSizer,它有一个固定的边框宽度,可以设置。下面的例子显示了几个staticbox对象,但是,如何调整它们的边框宽度/厚度呢?

其他的sizer可以做同样的工作吗?例如,在他们的孩子周围提供宽度可调的边框?

代码语言:javascript
复制
import wx

class mypanel(wx.Panel):
    def __init__ (self, parent):
        wx.Panel.__init__(self, parent, size=(-1, -1))

        mysizer4 = wx.BoxSizer(orient=wx.HORIZONTAL)
        box1 = wx.StaticBox(self, size=(-1,-1), style=wx.SUNKEN_BORDER)
        box2 = wx.StaticBox(self, size=(-1,-1), style=wx.SUNKEN_BORDER)
        box3 = wx.StaticBox(self, size=(-1,-1), style=wx.SUNKEN_BORDER)

        mysizer   = wx.StaticBoxSizer(box1, orient=wx.HORIZONTAL)
        mysizer2  = wx.StaticBoxSizer(box2, orient=wx.VERTICAL)
        mysizer3  = wx.StaticBoxSizer(box3, orient=wx.HORIZONTAL)

        mybutton = wx.Button(self, size=(-1,-1), label="hello")
        mybutton2 = wx.Button(self, size=(-1,-1), label="hello")
        mybutton3 = wx.Button(self, size=(-1,-1), label="hello")

        mytext1 = wx.StaticText(self, label="hello")
        mytext2 = wx.StaticText(self, label="bye")

        mytext3 = wx.StaticText(self, label="hello")
        mytext4 = wx.StaticText(self, label="bye")

        mytext5 = wx.StaticText(self, label="hello")
        mytext6 = wx.StaticText(self, label="bye")

        mysizer.Add(mybutton,      flag=wx.EXPAND)
        mysizer.Add(mytext1,      flag=wx.EXPAND)
        mysizer.Add(mytext2,      flag=wx.EXPAND)

        mysizer2.Add(mybutton2,    flag=wx.EXPAND)
        mysizer2.Add(mytext3,    flag=wx.EXPAND)
        mysizer2.Add(mytext4,    flag=wx.EXPAND)

        mysizer3.Add(mybutton3,    flag=wx.EXPAND)
        mysizer3.Add(mytext5,    flag=wx.EXPAND)
        mysizer3.Add(mytext6,    flag=wx.EXPAND)

        mysizer4.Add(mysizer)
        mysizer4.Add(mysizer2)
        mysizer4.Add(mysizer3)
        self.SetSizer(mysizer4)

class myframe(wx.Frame):
    def __init__(self):
        "Constructor. No arguments"
        wx.Frame.__init__(self, None, size=(-1,-1))
        sizer = wx.BoxSizer(orient=wx.HORIZONTAL)
        mydiag = mypanel(self)
        sizer.Add(mydiag)
        self.SetSizer(sizer)

if __name__ == "__main__":
    app = wx.App()
    region = myframe()
    region.Show()
    app.MainLoop()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-10 00:20:31

Sizers并不真正支持显示它们的边界。你碰巧找到了唯一一个这样的小部件,但据我所知,该小部件的配置选项非常有限。我在wxPython附带的小部件检查工具中看到了一个边框突出显示的示例。

你可以在wiki上读到这篇文章。你应该看看它的源码,看看它是怎么做到的。

或者,您可能会发现以下线程很有用:

  • http://wxpython-users.1045709.n5.nabble.com/quot-sizer-quot-with-visible-border-td2374108.html

它提供了一个变通方法,您可以使用带有背景颜色的面板而不是sizers。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17552693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档