我想使用wx.BoxSizer在垂直和水平方向上将元素居中。我尝试了这个不成功的情况(结果:该元素垂直居中,而不是水平居中...):

vsizer = wx.BoxSizer(wx.VERTICAL)
hsizer = wx.BoxSizer(wx.HORIZONTAL)
vsizer.AddStretchSpacer(1)
vsizer.Add(hsizer, 0, wx.ALL, 15)
vsizer.AddStretchSpacer(1)
self.SetSizer(vsizer)
hsizer.AddStretchSpacer(1)
hsizer.Add(wx.StaticBitmap(self, -1, myimg), 0, wx.ALL, 15)
hsizer.AddStretchSpacer(1)


如何使用wx.BoxSizer将元素在垂直和水平方向上居中?

最佳答案

这是一个简单的示例:

import wx

class Frame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "Vertical center")
        self.text = wx.StaticText(self, label=("This should be centered both"
                                   " vertically and horizontally"))
        sizer_v = wx.BoxSizer(wx.VERTICAL)
        sizer_h = wx.BoxSizer(wx.HORIZONTAL)
        sizer_h.Add(self.text, 1, wx.CENTER)
        sizer_v.Add(sizer_h, 1, wx.CENTER)
        self.SetSizer(sizer_v)

        self.Show()

app = wx.App()
Frame()
app.MainLoop()


wx.CENTER将元素放在wx.BoxSizer内部(滚动到页面底部):http://wiki.wxpython.org/BoxSizerTutorial
高温超导

关于python - wx.BoxSizer以垂直和水平居中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27095479/

10-13 09:46