【问题标题】:wxPython - adding space around a GridBagSizer on a PanelwxPython - 在面板上的 GridBagSizer 周围添加空间
【发布时间】:2011-10-31 12:00:55
【问题描述】:

我有一个放置在面板 (ctrlPanel) 上并使用它安装的 GridBagSizer(控件)

controls.Fit(ctrlPanel)
ctrlPanel.SetSizer(controls)

现在面板被放置在 BoxSizer 中

mainSizer = wx.BoxSizer(wx.VERTICAL)
mainSizer.Add(ctrlPanel, 0, wx.EXPAND|wx.ALL, 10)

但是,在框中添加面板周围的空间(而不是面板上的网格)确实会导致面板周围出现“深灰色”边框。

在将 GridBagSizer 安装到面板之前,是否有一种“lege artis”方式在其周围添加空间?还是我需要破解已填充单元格周围的空单元格?

感谢 Woodpicker 说

【问题讨论】:

  • 嗯,这个问题是不是措辞不好,还是没有人知道如何做到这一点? ;-)
  • 发生的事情已经很清楚了(您正在围绕面板创建边框,其后面没有任何内容),但是如果没有更多信息,很难为您提供清晰的解决方案。如果可以,请发布一些简单的、可运行的代码来演示表单布局和问题所在。

标签: wxpython panel space


【解决方案1】:

我希望这就是你要找的东西:

import wx

class MainWindow(wx.Frame):
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.panel = wx.Panel(self)
        self.buttons = [wx.Button(self.panel, label=str(n)) for n in range(9)]

        self.sizer = wx.GridBagSizer()
        for i, button in enumerate(self.buttons):
            self.sizer.Add(button, (i / 3, i % 3), flag=wx.ALL | wx.EXPAND)
        self.sizer.AddGrowableCol(1)
        self.sizer.AddGrowableRow(1)

        self.border = wx.BoxSizer()
        self.border.Add(self.sizer, 1, wx.ALL | wx.EXPAND, 20)

        self.panel.SetSizerAndFit(self.border)  
        self.Show()

app = wx.App(False)
win = MainWindow(None)
app.MainLoop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    • 2017-06-27
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    相关资源
    最近更新 更多