Как мне настроить границу объекта StaticText программно с учетом объекта StaticText? Кажется, с этим объектом связан SizerItem, но я не могу понять, как его найти.
Я вижу, что объект StaticText имеет функцию GetBorder (), но эта функция возвращает wx.NO_BORDER, поэтому это не так. то, что я ищу.
Минимальный рабочий пример:
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()
Я попробовал GetSizer()
и GetContainingSizer()
функции без такой удачи.