【发布时间】:2017-03-31 18:51:58
【问题描述】:
今天我在制作可滚动的绘画面板时遇到了一个问题。 我想使用此代码制作垂直和水平 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:第 1 行:20858 分段错误(核心转储)python2 main.py”
当我通过创建滚动条和设置 sizer(此代码中的 3d 和最后一个)来评论块时,代码运行良好,并且在绘制时,程序不会崩溃。我想要滚动条,因为在绘图时,DrawingPanel 正在改变大小。我该怎么做?
【问题讨论】: