Wxpython 如何以编程方式调整StaticText对象周围的边框?
在给定StaticText对象的情况下,如何通过编程调整StaticText对象的边框?似乎有一个SizerItem与此对象关联,但我不知道如何找到它 我看到StaticText对象有一个GetBorder()函数,但是这个函数返回wx.NO_BORDER,所以这不是我要找的 最简单的工作示例:Wxpython 如何以编程方式调整StaticText对象周围的边框?,wxpython,Wxpython,在给定StaticText对象的情况下,如何通过编程调整StaticText对象的边框?似乎有一个SizerItem与此对象关联,但我不知道如何找到它 我看到StaticText对象有一个GetBorder()函数,但是这个函数返回wx.NO_BORDER,所以这不是我要找的 最简单的工作示例: import wx import wx.xrc class MyFrame(wx.Frame): def __init__(self, parent): wx.Frame._
import wx
import wx.xrc
class MyFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(
self,
parent,
id=wx.ID_ANY,
title=wx.EmptyString,
pos=wx.DefaultPosition,
size=wx.Size(500, 300),
style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL,
)
self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
box_sizer = wx.BoxSizer(wx.VERTICAL)
labeled_box_sizer = wx.StaticBoxSizer(
wx.StaticBox(self, wx.ID_ANY, u"label"), wx.VERTICAL
)
self.m_text_top = wx.StaticText(
labeled_box_sizer.GetStaticBox(),
wx.ID_ANY,
u"Border = 0",
wx.DefaultPosition,
wx.DefaultSize,
0,
)
self.m_text_top.Wrap(-1)
labeled_box_sizer.Add(self.m_text_top, 0, wx.ALL, 0)
self.m_text_bottom = wx.StaticText(
labeled_box_sizer.GetStaticBox(),
wx.ID_ANY,
u"Border = 5",
wx.DefaultPosition,
wx.DefaultSize,
0,
)
self.m_text_bottom.Wrap(-1)
labeled_box_sizer.Add(self.m_text_bottom, 0, wx.ALL, 5)
box_sizer.Add(labeled_box_sizer, 0, wx.ALL, 5)
self.SetSizer(box_sizer)
self.Layout()
self.Centre(wx.BOTH)
def __del__(self):
pass
app = wx.App()
window = MyFrame(None)
window.Show()
text = window.m_text_top
# text.SetBorder(5) # <-- no such method exists
app.MainLoop()
导入wx
导入wx.xrc
类MyFrame(wx.Frame):
定义初始化(自身,父级):
wx.Frame.\uuuu init__(
自己
父母亲
id=wx.id\u任何,
title=wx.EmptyString,
位置=wx.DefaultPosition,
尺寸=宽x.尺寸(500300),
style=wx.DEFAULT_FRAME_style|wx.TAB_遍历,
)
self.SetSizeHints(wx.DefaultSize,wx.DefaultSize)
盒子尺寸=wx.BoxSizer(wx.VERTICAL)
标签为\u box\u sizer=wx.StaticBoxSizer(
wx.StaticBox(自,wx.ID_ANY,u“标签”),wx.VERTICAL
)
self.m_text_top=wx.StaticText(
标签为\u box\u sizer.GetStaticBox(),
wx.ID_任何,
u“边界=0”,
wx.DefaultPosition,
wx.DefaultSize,
0,
)
self.m_text_top.Wrap(-1)
已标记为\u box\u sizer.Add(self.m\u text\u top,0,wx.ALL,0)
self.m_text_bottom=wx.StaticText(
标签为\u box\u sizer.GetStaticBox(),
wx.ID_任何,
u“边界=5”,
wx.DefaultPosition,
wx.DefaultSize,
0,
)
self.m_text_bottom.Wrap(-1)
已标记为\u box\u sizer.Add(self.m\u text\u bottom,0,wx.ALL,5)
添加(标记为0,wx.ALL,5)
自整定器(箱式施胶器)
self.Layout()
自中心(wx和wx)
定义(自我):
通过
app=wx.app()
window=MyFrame(无)
window.Show()
text=window.m\u text\u top
#text.setboorder(5)#您应该能够像这样获得wx.SizerItem
:
item = text.GetContainingSizer().GetItem(text)
如果您只想保留对sizer项的引用,而不是每次都获取它,那么在添加静态文本时,它将从sizer的Add
方法返回
一旦您拥有了该项目,您就可以调整该项目的sizer特定属性。在完成调整后,请务必调用sizer或包含小部件的布局
方法