파이썬과 gnomecanvas를 사용하여 간단한 그리기 응용 프로그램을 만들려고합니다. 안타깝게도 gnomecanvas에 대한 Python 바인딩에 대한 문서는 전혀 없습니다. 따라서 코드 샘플을 사용하여 C 바인딩을 추측하려고합니다.파이썬에서 기존의 그놈 캔버스 bpath에 추가 할 수있는 방법이 있습니까?
그대로, 나는 각각의 새로운 항목에서이 목록에서 새 경로 객체를 뇌졸중에서 현재 지점의 목록을 유지하고 생성하여 작동하는 코드가 있습니다
def get_pointer_coords(self, event):
return self.window_to_world(event.x, event.y)
def render_path(self):
path_def = gnomecanvas.path_def_new(self.cur_path)
self.current_item.set_bpath(path_def)
def button_press(self, event):
is_core = event.device is gdk.device_get_core_pointer()
if is_core:
return
self.drawing = True
(x, y) = self.get_pointer_coords(event)
self.cur_path = [(gnomecanvas.MOVETO_OPEN, x, y)]
self.current_item = self.root().add(gnomecanvas.CanvasBpath
, outline_color="#A6E22E"
, width_pixels=1
, cap_style=gdk.CAP_ROUND
)
def button_release(self, event):
self.drawing = False
def motion_notify(self, event):
is_core = event.device is gdk.device_get_core_pointer()
if not is_core and self.drawing:
(x, y) = self.get_pointer_coords(event)
self.cur_path.append((gnomecanvas.LINETO, x, y))
self.render_path()
이 나에게 보이는 것이 될를 오히려 비효율적 인 방법 : 포인터가 움직일 때마다 새로운 객체 생성; 내 타블렛에서 서브 픽셀 정밀도를 얻고 있다고 생각하면 이 자주입니다.
내 질문은 :이 라이브러리의 C 버전에서와 같이 각 포인터 동작의 기존 bpath에 간단히 추가 할 수있는 방법이 있습니까?
관련 노트에 Google에서 수 시간 동안 Google 검색 결과를 제공하지 않아이 API에 대한 문서가 있습니까?