Я хочу сделать горизонтальные ряды меток и текстовых полей и поместить строки в поле с меткой, чтобы они были хорошо сгруппированы. Однако по какой-то причине рамка распространяется только вокруг последней строки в серии (см. Изображение ниже). Я бы хотел, чтобы она сгруппировала все строки.
Есть ли более простой способ сделать такой сгруппированный и помеченный интерфейс?
Код для генерации вышеуказанного,
import wx
class ExamplePanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.mainBox = wx.StaticBox(self, id=-1, label="Box Label")
self.mainSizer = wx.StaticBoxSizer(self.mainBox, wx.VERTICAL)
labels = ["A: ", "B: ", "C: "]
for i, label in enumerate(labels):
itemLabel = wx.StaticText(self, label=label)
itemTextCtrl = wx.TextCtrl(self, value="placeholder")
itemTextCtrl.SetForegroundColour(wx.LIGHT_GREY)
rowSizer = wx.StaticBoxSizer(self.mainBox, wx.HORIZONTAL)
rowSizer.Add(itemLabel, 0, wx.ALL, 0)
rowSizer.Add(itemTextCtrl, 0, wx.ALL, 0)
self.mainSizer.Add(rowSizer)
self.SetSizer(self.mainSizer)
self.mainSizer.Fit(self)
if __name__ == '__main__':
app = wx.App(False)
frame = wx.Frame(None)
panel = ExamplePanel(frame)
frame.Show()
app.MainLoop()