Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wxPython。如何使静态尺寸的面板居中?_Python_User Interface_Wxpython_Alignment_Boxsizer - Fatal编程技术网

wxPython。如何使静态尺寸的面板居中?

wxPython。如何使静态尺寸的面板居中?,python,user-interface,wxpython,alignment,boxsizer,Python,User Interface,Wxpython,Alignment,Boxsizer,我知道这是一个非常简单的问题,但我花了几个小时试图找出一个解决方案。我希望我的面板是一个不改变大小的50x50蓝色框,并保持在窗口的中心。我试过使用水平和垂直的内部和外部尺寸标注器,它似乎只能识别外部尺寸标注器。如果有人能帮助我,我将不胜感激。 导入wx class Main(wx.Frame): def __init__(self,parent,id): wx.Frame.__init__(self,parent,id,'Main',size=(700,500)) self

我知道这是一个非常简单的问题,但我花了几个小时试图找出一个解决方案。我希望我的面板是一个不改变大小的50x50蓝色框,并保持在窗口的中心。我试过使用水平和垂直的内部和外部尺寸标注器,它似乎只能识别外部尺寸标注器。如果有人能帮助我,我将不胜感激。 导入wx

class Main(wx.Frame):

def __init__(self,parent,id):
    wx.Frame.__init__(self,parent,id,'Main',size=(700,500))

    self.SetBackgroundColour('white')

    panel = wx.Panel(self,wx.ID_ANY,size=(50,50))
    panel.SetBackgroundColour('blue')

    sizer=wx.BoxSizer()
    sizer.Add(panel,0,wx.ALIGN_CENTER|wx.ALL)

    self.SetSizer(sizer)


if __name__=='__main__':
    app=wx.App()
    frame=Main(parent=None, id=-1)
    frame.Show()
    app.MainLoop()

在面板的任一侧添加一个stretchspacer即可

import wx


class Main(wx.Frame):

    def __init__(self, parent, id):
        wx.Frame.__init__(self, parent, id, 'Main', size=(700, 500))

        self.SetBackgroundColour('white')

        panel = wx.Panel(self, wx.ID_ANY, size=(50, 50))
        panel.SetBackgroundColour('blue')

        sizer = wx.BoxSizer()
        sizer.AddStretchSpacer(1)
        sizer.Add(panel, 0, wx.ALIGN_CENTER)
        sizer.AddStretchSpacer(1)

        self.SetSizer(sizer)


if __name__ == '__main__':
    app = wx.App()
    frame = Main(parent=None, id=-1)
    frame.Show()
    app.MainLoop()

成功了!非常感谢你