wxPython StaticText已添加到sizer中

时间:2015-06-15 14:13:12

标签: python wxpython

我有一个标题大小:

    self.label = wx.StaticText(self, -1, _("Elements:"))
    sizer_1 = wx.FlexGridSizer(2, 5, 5, 10)
    sizer_1.Add(self.label, 0, 0, 0)

我在sizer中有许多其他对象,稍后会添加。 我希望标签是sizer第一行中唯一的对象。 无论我玩了多少列出的标志here 我无法找到如何设置它。 (我不想在整行上划伤标签)

我希望它看起来像这样: (下面的元素的顺序/数量是不敬的)

Elements
1 2 3 4 5 6 7
8 9 

目前得到的是:

Elements 1 2 3
4 5 6 etc...

数字表示其他对象文本。

2 个答案:

答案 0 :(得分:1)

Create a vertically oriented BoxSizer. Add the label and the FlexGridSizer to the BoxSizer. Set the box sizer as the sizer for your panel/frame/whatever instead of the FlexGridSizer . That should just about do it.

Nesting sizers inside of each other is a powerful and very useful thing to learn.

答案 1 :(得分:0)

我不确定python,但是对于C ++,我们可以使用wxStaticBoxSizer,因为它支持标签显示,与tkinter中的LabelFrame或其他语言中的group / frame相同。

您应该首先通过另一个BoxSizer / GridBoxSizer来布局gui,然后在其中添加StaticBoxSizer,这样您的外观会更好。

例如:

wxStaticBoxSizer *sizer = new wxStaticBoxSizer(wxVERTICAL, panel, "Label here");