小编Kad*_*ade的帖子

wxPython:隐藏小部件并删除剩余空间

我想在 sizer 中隐藏一个小部件,而不是留下空白空间。我不想删除小部件,因为我想稍后再显示它。

有没有办法隐藏小部件并在它移动到一个空间以填充空位后显示显示的小部件?

这是一个留有空格的简单示例:

import wx

class MyPanel(wx.Panel):
    def __init__(self, parent):
        """Constructor"""
        wx.Panel.__init__(self, parent)

        sizer = wx.GridSizer(1, 3, 0, 0)

        a = wx.Button(self, -1, 'a')
        b = wx.Button(self, -1, 'b')
        c = wx.Button(self, -1, 'c')

        sizer.Add(a, 0, 0, 0)
        sizer.Add(b, 0, 0, 0)
        sizer.Add(c, 0, 0, 0)

        b.Hide()

        self.SetSizer(sizer)

class MyFrame(wx.Frame):
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, parent=None, title="Remove Spaces")
        panel = MyPanel(self)
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panel, 1, wx.EXPAND)
        self.SetSizer(sizer)
        self.Fit()
        self.Show()

if __name__ == "__main__":
    app = wx.App(False)
    frame = …
Run Code Online (Sandbox Code Playgroud)

python wxpython hide sizer

3
推荐指数
1
解决办法
2059
查看次数

标签 统计

hide ×1

python ×1

sizer ×1

wxpython ×1