有什么东西可以用来在窗口边缘或wxWidgets / wxPython组件之间添加空间吗?我想要一些东西来防止组件被挤压到窗口边框或彼此之间,类似于Java Swing的EmptyBorder或Insets可以做的事情。 (我知道你可以用一些sizer设置水平/垂直间隙,但我想要更灵活的东西。)
答案 0 :(得分:2)
wxWidgets提供的sizer非常灵活。你确定你已经探索了他们所能做到的一切吗?很难想象你可能需要什么,他们无法处理。请准确描述您的需求,并发布到目前为止您尝试过的代码。
以下是一个例子:
sizer->Add(new wxButton(this, -1, "Button with 20 pixel border all round"),
0, wxALL, 20);
以下是更多sizer选项的演示。 http://neume.sourceforge.net/sizerdemo/
如果您真的无法使用sizer来实现所需,那么您可以通过将位置传递给窗口小部件构造函数来明确地将每个窗口小部件放在任何位置。
wxPoint button_position( 50,50 ); // position button 50 pixel down and to right of top left
new wxButton(this, -1, "Button", button_position )
答案 1 :(得分:1)
请参阅Sizer的Add方法中的border参数。您可以使用flag参数告诉它放置边框的位置,例如wx.ALL,wx.RIGHT,wx.LEFT,wx.TOP等。
这可用于在窗口小部件和窗口小部件之间放置空间。有时您可能希望使用sizer的AddSpacer来添加空间。或者你可以这样做:
mySizer.Add((20, 100))
这样做是在y轴上的两个小部件之间放置100个像素。你可能不得不用它来玩它以你想要的方式。
另请参阅http://wiki.wxpython.org/GridSizerTutorial或http://zetcode.com/wxpython/layout/
答案 2 :(得分:0)
我没有在 python 上尝试过,但是在 C++ 中,接受的答案不起作用。 我不得不使用“AddSpaceer”作为:
mySizer->AddSpacer((10, 10));