2014-11-17 2 views
6

저는 독자적으로 GTK3을 배웠고 이제 Gtk.DrawingArea에 머물러 있습니다. GTK에서 대부분의 위젯과 함수와 마찬가지로 업데이트 된 문서와 튜토리얼이 부족한 것 같습니다.GTK3 도면 영역 자습서가 존재하지 않는 것 같습니다.

http://lazka.github.io/pgi-docs/Gtk-3.0/classes/index.html

도면 영역 페이지 설명에는 방법이 없습니다 그러나 : 내가 찾은 무엇인지에 참조 (희망이 다른 손실 명의 Google 도움이 될 것입니다)의 경우, lazka의 자동 생성 된 문서 내 최고의 자원이었다.

http://lazka.github.io/pgi-docs/Gtk-3.0/classes/DrawingArea.html

이 내가 GTK이 위젯의 ​​기본적인 오해를 믿고 날 리드,하지만 난 그것으로 작업하는 방법을 설명 아무것도 찾을 수 없습니다! 내가 찾을 수있는 유일한 자습서는 이것들 이었지만 모두 이전 버전이었습니다.

3이 튜토리얼의 최고,하지만 난 솔직히 GTK3에서 작동하도록하는 것, 그리고 수 그것의 꽤 고급. 여러 가지도 사용되지 않습니다 및 교체 꽤 난해한 것 같다 그들이 DrawingArea와 함께 작동하는 방법 불분명 : 공식 튜토리얼이에 대한 섹션이없는 http://lazka.github.io/pgi-docs/Gtk-3.0/classes/Widget.html#Gtk.Widget.set_style

, 상당히 긴 업데이트되지 않았습니다 시간 :

http://python-gtk-3-tutorial.readthedocs.org/en/latest/objects.html

https://github.com/sebp/PyGObject-Tutorial

내 질문은 이제 누군가가 나를 Gtk.DrawingArea으로 그리는 방법을 이해하는 데 도움이 수 여부? 거기에 gtk3 자습서가 있습니까?

내 목표는 알고리즘의 출력에 따라 도면 영역에 검정 점을 자동으로 그려 결과를 표시하는 것입니다. 나는 내 코드를 보여줄 것이지만 나는 거의 아무것도 갖고 있지 않다.

+0

참고하세요! 그것은 모든 속성이 설정된 빈 빈 도구 일 뿐이므로 'draw'신호에서 그릴 수 있습니다. – ptomato

+0

흥미 롭습니다! 나는 콜백 신호 (on_draw)에 연결할 때 신호를 알아 차리고 콜백이 효과적으로 루프에 있음을 알았다. 나는 그것을 원할 때 핸들러 ID를 언 블럭킹 (unblocking)하여 콜백이 끝날 때 블로킹을 막았지만, 그렇게하는 것이 올바른 방법이라고 생각지 않는다. 커스텀 시그널이나 기타 어드바이스에 대한 추가 정보는 있습니까? 또한 단일 픽셀 작성을위한 cairo.context의 메소드를 알고 있습니까? 내가 얻은 가장 가까운 것은 매우 작은 사각형을 만들고 있었다. – Swashy

+0

추가 질문이 있으면 누구나 답변 할 수있는 새로운 질문을하는 것이 가장 좋습니다. 그러나 위젯이 다시 그리기를해야 할 때마다 그리기 신호가 출력되어야합니다. (일단 무언가가 그려지면 잊어 버리고 다른 창 위로 이동하면 다시 그려야합니다.) 그리고 카이로는 픽셀을 다루지 않으므로 달성하려는 대상에 따라 작은 사각형이 맞을 수도 있습니다. – ptomato

답변

7

기본적으로 :: draw 신호에 연결하고 pycairo를 사용하여 핸들러를 그립니다. 다시 그리려면 queue_draw/queue_draw_area()를 사용하십시오.

는 GtkDrawingArea`이 진정으로 어떤 방법이없는 '것을 예제 http://zetcode.com/gfx/pycairo/basicdrawing/

+1

Whoa lazka 그 자신! 고마워,이게 내가 원하는거야. – Swashy

관련 문제