2014-02-19 2 views
0

커스텀 위젯을 만들기 위해 PyGObject에서 서브 클래스 Gtk.DrawingArea을 사용해야한다는 것을 알고 있습니다. 당신은 다음과 같습니다 콜백에 draw 신호를 연결 :PyGObject 사용자 정의 위젯 : 무효 영역을 그리는 방법은 무엇입니까?

def on_draw(drawing_area, cr): 
    # do something with cr 
    return False 

다시 그리기를 요청하려면 my_widget.queue_draw()을 부를 것이다.

이제는 my_widget.queue_draw_area()을 사용하여 표면의 특정 영역을 다시 그리도록 요청할 수 있음을 알고 있습니다. 이 후에 on_draw 콜백이 호출되면 그릴 영역을 어떻게 알 수 있습니까?

답변

1

draw 가상 함수가 이미 카이로 컨텍스트에 부과 된 클립의 일부인 무효 영역과 함께 호출됩니다.

클리핑 된 영역의 범위를 알고 싶으면 gdk_cairo_get_clip_rectangle()에 파이썬 래퍼를 사용할 수 있습니다.

+1

감사합니다. 'Gdk.cairo_get_clip_rectangle' 인 것 같습니다. – eepp

관련 문제