0
ウィジェットをウィジェット内に非表示にし、空白を残したくありません。 ウィジェットを後で再度表示したいので、ウィジェットを削除したくありません。wxPython:ウィジェットを非表示にして残りのスペースを削除する
ウィジェットを非表示にし、空白を埋めるために1つのスペースを移動した後にウィジェットを表示する方法はありますか?ここで
は残されているスペースの簡単な例です:
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 = MyFrame()
app.MainLoop()
あなたの例の空のスペースを削除しないが、私の知る限り、これが唯一のバッグサイザーのために動作します。 サイザータイプ(グリッドサイザー、フレックスグリッドサイザー、バッグサイザーなど)に関係なく*空のスペースを削除する方法はありますか? – Kade
私が知る限り、 'GridSizer'はかなり静的です。その最後のボタンを2番目の位置のsizerに読み込む必要があります。 –
'FlexGridSizer'はどうですか? – Kade