2017-03-22 6 views
0
으로 사용

GUI로 캔버스가 필요한 응용 프로그램을 작성하려고합니다. 나는 파이썬 3과 GTK + 3을 사용하고있다.GooCanvas를 Python 3 및 GTK +

내가 발견했는데, GooCanvas은 이에 적합해야하지만 설치하거나 데모를 작동시킬 수 없다.

최근에 GTK + 3에서이 라이브러리를 사용한 사람이 있습니까? 이 문제에 대한 토론을 찾을 수 없었습니다. 나는 무엇인가 놓치고 있는가? 사용할 수있는 더 좋은 캔버스가 있습니까? 찾을 수 없습니다.

+0

주어진 링크는 GooCanvas의 GTK + 2 버전을 가리 킵니다. API 참조는 (https://lazka.github.io/pgi-docs/#GooCanvas-2.0)에 있습니다. –

답변

0

Gtk3의 버전은 GooCanvas-2.x입니다. GooCanvas에는 사소한 문제가 있지만 인트로 스펙 션이 있습니다. 다음은 '현대'GooCanvas의 아주 단순한 예입니다.

from gi.repository import Gtk, GooCanvas 

def main(args): 
    w = Gtk.Window() 
    w.connect('destroy', lambda x: Gtk.main_quit()) 

    cv = GooCanvas.Canvas() 
    cv_root = cv.get_root_item() 
    rect = GooCanvas.CanvasRect(
      parent = cv_root, 
      stroke_color = 'red', 
      x = 10, y = 20, 
      width = 40, height = 30) 

    w.add(cv) 
    w.show_all() 
    Gtk.main() 

    return 0 

if __name__ == '__main__': 
    import sys 
    sys.exit(main(sys.argv)) 

리포지토리 시스템에는 다소 익숙하지만 많은 장점이 있습니다. 아는 한 '더 좋은'캔버스를 사용할 수 없습니다. 카이로를 직접 사용할 수도 있지만 GooCanvas는 캔버스를 자동으로 다시 그리는 것과 같은 여러 가지 귀찮은 작업을 처리합니다.

편집는 :

ImportError: cannot import name GooCanvas, introspection typelib not found

이 반성의 설치가 완료되지 않았 음을 의미합니다. Python에서 'pgi'모듈이 누락 된 것 같습니다. (pip3 install pgi) 및 가능하면 PyGObject의 업데이트 된 버전 (아마도 배포자 저장소에서 사용 가능)

+0

고마워요. 그래도 여전히 : '''Traceback (가장 최근 통화 최종) : _find_spec AttributeError에서 파일 "<냉동 importlib._bootstrap>", 라인 890은, 'DynamicImporter'객체 위의 예외 처리시 'find_spec'에는 속성이 없습니다, 다른 예외가 발생했습니다 역 추적 (마지막으로 가장 최근 통화) : 파일 "t.py", 3 호선, 에서 gi.repository 수입은 Gtk, GooCanvas 파일에서 "/usr/lib/python3/dist-packages/gi/importer.py ", 줄 127, find_module에 'introsp 굴림 형식 라이브러리가 없습니다 '% 네임 스페이스) ImportError : 이름을 가져올 수 없습니다. GooCanvas, 내정형 typelib을 찾을 수 없습니다.''' –

+0

이전 답장에 몇 가지 정보를 추가했습니다. – jcoppens