【问题标题】:WXPython Scrollable paint panelWXPython 可滚动的绘画面板
【发布时间】: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 正在改变大小。我该怎么做?

【问题讨论】:

    标签: python wxpython wxwidgets


    【解决方案1】:

    看看你在做什么:你的DrawPanelScrollBarH里面,它在ScrollBarV里面,它被用作DrawPanel的sizer,因此在里面。所以你已经成功地创建了一个递归的窗口和尺寸器层次结构——毫无疑问它不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-20
      • 2011-01-25
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多