gpt4 book ai didi

python - WxPython:FoldPanelBar 并未真正折叠

转载 作者:太空宇宙 更新时间:2023-11-03 19:39:45 26 4
gpt4 key购买 nike

我使用 FoldPanelBar 编写了以下代码:

import wx
import wx.lib.agw.foldpanelbar as fpb

class frame(wx.Frame):
def __init__(self,*args,**kwargs):
wx.Frame.__init__(self,*args,**kwargs)
self.text_ctrl_1=wx.TextCtrl(self,-1,style=wx.TE_MULTILINE)

self.fpb=fpb.FoldPanelBar(self,-1, style=fpb.FPB_HORIZONTAL)
self.fold_panel=self.fpb.AddFoldPanel("Thing")
self.thing=wx.TextCtrl(self.fold_panel,-1, size=(400,-1), style=wx.TE_MULTILINE)
self.fpb.AddFoldPanelWindow(self.fold_panel, self.thing)

self.sizer_1=wx.BoxSizer(wx.HORIZONTAL)

self.sizer_1.Add(self.text_ctrl_1,1,wx.EXPAND)
self.sizer_1.Add(self.fpb,1,wx.EXPAND)

self.SetSizer(self.sizer_1)

self.Show()



if __name__=="__main__":
app=wx.PySimpleApp()
frame(None,-1)
app.MainLoop()

这是折叠前的样子:

alt text http://img23.imageshack.us/img23/4309/before.gif

右侧的文本框位于折叠面板中,因此当我单击箭头时,它就会消失。然而,它看起来像这样:

alt text http://img22.imageshack.us/img22/6306/afterz.gif

我预计左侧文本框的大小会增大以填充整个框架。

我做错了什么?

最佳答案

我认为这就是你想要的。我尚未在折叠面板栏中测试多个面板,您可能需要明确限制折叠面板栏的大小以防止其变得太宽。

import wx
import wx.lib.agw.foldpanelbar as fpb

class frame(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.text_ctrl_1=wx.TextCtrl(self, -1, size=(400, 100),
style=wx.TE_MULTILINE)
self.fpb = fpb.FoldPanelBar(self, -1,
style=fpb.FPB_HORIZONTAL|fpb.FPB_DEFAULT_STYLE)
self.fold_panel = self.fpb.AddFoldPanel("Thing")
self.thing = wx.TextCtrl(self.fold_panel, -1, size=(400, -1),
style=wx.TE_MULTILINE)
self.fpb.AddFoldPanelWindow(self.fold_panel, self.thing)
self.fpb.Bind(fpb.EVT_CAPTIONBAR, self.onCaptionBar)
self.sizer_1 = wx.BoxSizer(wx.HORIZONTAL)
self.sizer_1.Add(self.text_ctrl_1, 1, wx.EXPAND)
self.sizer_1.Add(self.fpb, 0, wx.EXPAND)
self.SetSizer(self.sizer_1)
self.ResizeFPB()

def onCaptionBar(self, event):
event.Skip()
wx.CallAfter(self.ResizeFPB)

def ResizeFPB(self):
sizeNeeded = self.fpb.GetPanelsLength(0, 0)[2]
self.fpb.SetMinSize((sizeNeeded, self.fpb.GetSize()[1]))
self.Fit()


app = wx.App(0)
f = frame(None)
f.Show()
app.MainLoop()

关于python - WxPython:FoldPanelBar 并未真正折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/815589/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com