2016-11-17 2 views
1

오늘 스크롤 가능한 페인트 패널을 만드는 데 한 가지 문제가 있습니다. 이 코드를 사용하여 수직 및 수평 boxsizers을 만들고 싶어 :WXPython 스크롤 가능한 페인트 패널

여기
#Панель рисования 
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 : 20,858 분할 오류 (코어 덤프) python2의 main.py는"

나는 스크롤을 만드는 블록을 언급 할 때 sizer (3d와이 코드의 마지막)를 설정하면 코드가 잘 작동하고, 끌 때 프로그램이 중단되지 않습니다. 그리기 때 DrawingPanel 크기를 변경하기 때문에 나는 scrollbars 싶어요. 내가 어떻게 할 수 있니? 당신이 무슨 일을하는지에

답변

1

봐 : 당신의 DrawPanel 내부 ScrollBarH이며, 내부 ScrollBarV이며, 따라서의 선별기로 사용하고, 내부 DrawPanel입니다. 따라서 창과 사이 저의 재귀 적 계층 구조를 만들 수 있습니다. 놀랄 일도 아닙니다.

관련 문제