gpt4 book ai didi

python - WXPython 可滚动绘画面板

转载 作者:太空宇宙 更新时间:2023-11-03 15:57:32 25 4
gpt4 key购买 nike

今天我在制作可滚动油漆面板时遇到一个问题。我想使用以下代码制作垂直和水平 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 和此代码中的最后一个)来注释 block 时,代码运行良好,并且在绘制时,程序不会崩溃。我想要滚动条,因为绘图时,DrawingPanel 正在改变大小。我怎样才能做到这一点?

最佳答案

看看你在做什么:你的 DrawPanel 位于 ScrollBarH 内部,而 ScrollBarH 位于 ScrollBarV 内部,后者用作尺寸调整器,因此位于 DrawPanel 内部。因此,您已经成功创建了窗口和 sizer 的递归层次结构 - 毫不奇怪它不起作用。

关于python - WXPython 可滚动绘画面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40651355/

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