WXPython可滚动绘制面板

WXPython可滚动绘制面板,python,wxpython,wxwidgets,Python,Wxpython,Wxwidgets,今天我有一个问题,使滚动画面板。 我想使用以下代码制作垂直和水平Boxsizer: #Панель рисования DrawScroller = ScrolledWindow(PaintFrame, ID_ANY) DrawScroller.SetScrollRate(5, 5) DrawScroller.EnableScrolling(True, True) DrawScroller.SetSize(Size(685, 600-51)) DrawScroller.Move(Point(1

今天我有一个问题,使滚动画面板。 我想使用以下代码制作垂直和水平Boxsizer:

#Панель рисования
DrawScroller = ScrolledWindow(PaintFrame, ID_ANY)
DrawScroller.SetScrollRate(5, 5)
DrawScroller.EnableScrolling(True, True)

DrawScroller.SetSize(Size(685, 600-51))
DrawScroller.Move(Point(115, 0))
DrawScroller.SetBackgroundColour(Colour(255, 255, 255))

ScrollBarV = BoxSizer(VERTICAL)
ScrollBarH = BoxSizer(HORIZONTAL)

DrawPanel = Panel(DrawScroller, ID_ANY)
DrawPanel.SetSize(Size(685*2, (600-51)*2))
DrawPanel.Move(Point(0, 0))
DrawPanel.SetBackgroundColour(Colour(255, 255, 255))

Paint = PaintZone(DrawPanel)
Paint.Clear()

x, y = DrawPanel.GetSize()
ScrollBarH.Add(DrawPanel, x, y)
ScrollBarV.Add(ScrollBarH)
DrawScroller.SetSizer(ScrollBarV)
这里的PaintZone与PaintDC相同,但有一些变量,如图形和工具。 当我运行此代码并尝试绘制时,程序将被以下内容压碎: “paint.sh:line 1:20858分段错误(堆芯转储)python2 main.py”


当我通过创建滚动条和设置sizer(代码中的3d和last)注释块时,代码工作得很好,当绘制时,程序不会崩溃。我想要滚动条,因为在绘图时,DrawingPanel正在更改大小。我怎么能做到这一点呢?

看看你在做什么:你的
DrawPanel
ScrollBarH
里面,它在
ScrollBarV
里面,它被用作
DrawPanel
的大小调整器,因此就在
DrawPanel
里面。因此,您已经成功地创建了一个递归的windows和Sizer层次结构——毫不奇怪它不起作用