将BoxSizer放在面板中间

时间:2011-10-06 10:52:14

标签: user-interface layout wxpython positioning

我写了一些显示wx.Frame的代码,其中有一个wx.Panel,其中有一个jpg。 jpg与帧的大小相同,因此当程序启动时,向用户呈现覆盖整个窗口的图片。覆盖在这张图片的顶部,并且位于面板的中心我想放置一个包含各种小部件的wx.BoxSizer。到目前为止,我已经看到了sizer,但是尽可能地尝试,我无法将其从面板的最左上角移动到中心。毫无疑问,有许多涉及网格和边界的圆形方法,但在我开始沿着这条路走下去之前,我想知道我是否遗漏了一些简单的东西,并且有一个命令可用于在小部件中定位小组的指定部分。

PS。我也知道我可以使用绝对定位来做到这一点,但我希望能够在保持sizer位于其中心的同时调整窗口大小。

1 个答案:

答案 0 :(得分:1)

通常情况下,您无法看到sizer。但无论如何,你并没有真正集中精力。您将小部件集中在sizer中。因此,当您向sizer添加小部件时,您需要执行以下操作:

mySizer = wx.BoxSizer(wx.VERTICAL)
mySizer.Add(widget, 0, wx.CENTER|wx.ALL, 5)

现在,这只会水平居中。如果你想要它在面板的正中心,那么创建另一个水平定向的BoxSizer并将第一个sizer添加到第二个sizer,同时将它居中。

hSizer = wx.BoxSizer(wx.HORIZONTAL)
hSizer.Add(mySizer, 0, wx.CENTER)