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

标签 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.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()

最佳答案

在面板的两侧添加拉伸(stretch)间隔即可实现

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()

关于python - wxPython。如何使静态尺寸面板居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20737965/

相关文章:

Python - 使用字符串数组,将它们作为函数的数据帧名称的输入传递

java - 如何更改警报对话框的图标?

python - 如何用 python 绘制 x y 线图?

python - python中的压缩(存档)旧日志文件

java - 按钮大小不一样

python - Wxpython - 如何在不关闭应用程序的情况下生成一系列文本提示?

python - 如何在整个类中声明全局变量?

python - 为什么我不能在 wxPython 中销毁我的 StaticText?

python - 使多处理函数超时

android - 为应用程序创建 Android Assets (LPDI、MDPI、HDPI、XHDPI)?