Wenn sich die Faltwände ausdehnen, wird der Rahmen nicht mehr angezeigt und Bildlaufleisten werden nicht angezeigt. Ich habe versucht mit einem ScrolledPanel, aber hat nicht geholfen. Irgendeine Idee, was ich hier vermisse?Bildlaufleisten werden beim Erweitern von FoldPanelBar in wxPython nicht angezeigt
import wx
from wx.lib import scrolledpanel
import wx.lib.agw.foldpanelbar as fpb
import wx.lib.scrolledpanel as sp
class MyPanel(sp.ScrolledPanel):
def __init__(self, parent):
sp.ScrolledPanel.__init__(self, parent=parent, size=parent.GetSize(), style = wx.ALL|wx.EXPAND)
#self.SetAutoLayout(1)
self.SetupScrolling()
##self.boxSizer = wx.BoxSizer(wx.VERTICAL)###
csStyle = fpb.CaptionBarStyle()
csStyle.SetFirstColour(wx.Colour(190, 190, 190, 255))
csStyle.SetSecondColour(wx.Colour(167, 232, 146, 255))
csStyle.SetCaptionFont(wx.Font(9, wx.DEFAULT, wx.NORMAL, wx.BOLD))
m_pnl = fpb.FoldPanelBar(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize,
fpb.FPB_VERTICAL)
item = m_pnl.AddFoldPanel("Set 1", collapsed=True, cbstyle=csStyle)
self.listContainer = wx.ListCtrl(item, style=wx.LC_REPORT)
self.listContainer.InsertColumn(0, 'Column1', width=250)
self.listContainer.InsertColumn(1, 'Column2', width=150)
self.listContainer.InsertColumn(2, 'Column3')
m_pnl.AddFoldPanelWindow(item, self.listContainer)
btnAutoFix = wx.Button(item, wx.ID_ANY, "Go", size=(50,-1))
m_pnl.AddFoldPanelWindow(item, btnAutoFix)
###self.boxSizer.Add(m_pnl)##
item = m_pnl.AddFoldPanel("Set 2", collapsed=True, cbstyle=csStyle)
self.listContainer2 = wx.ListCtrl(item, style=wx.LC_REPORT)
self.listContainer2.InsertColumn(0, 'Column1', width=250)
self.listContainer2.InsertColumn(1, 'Column2', width=150)
self.listContainer2.InsertColumn(2, 'Column3')
m_pnl.AddFoldPanelWindow(item, self.listContainer2)
self.pnl = m_pnl
##self.SetSizer(self.boxSizer)###
if __name__ == '__main__':
app = wx.App(False)
frame = wx.Frame(None, size=(650, 400), style=wx.DEFAULT_FRAME_STYLE)
panel = MyPanel(frame)
# Add sizer information for the scrolled panel
szmain = wx.BoxSizer(wx.VERTICAL)
szmain.Add(panel.pnl, 1, wx.EXPAND|wx.ALL, 4)
panel.SetSizer(szmain)
frame.Show()
app.MainLoop()
Leider glaube ich nicht, dass dies mit der 'FoldPanelBar' Klasse möglich ist. Wenn Sie das Ereignis "EVT_CAPTIONBAR" abfangen und "self.pnl.GetSize()" drucken, ist dies immer ein konstanter Wert, was bedeutet, dass die 'FoldPanelBar' niemals die Größe ändert. Sie könnten stattdessen 'wxCollapsiblePane' verwenden, aber Sie könnten das Erscheinungsbild nicht anpassen. – tjohnson
Duplizieren, siehe [Parallelpost in wxpython-Benutzer] (https://groups.google.com/forum/#!topic/wxpython-users/tzjhIIttjH4) – nepix32
Aber es gibt noch keine Lösung. Scheint, dass es keine Bildlaufleisten unterstützt :( – devnull