在Python中有没有一种附加到现有gnome画布bpath的方法?

在Python中有没有一种附加到现有gnome画布bpath的方法?,python,gnome,Python,Gnome,我正在尝试使用Python和gnomecanvas制作一个简单的绘图应用程序。遗憾的是,似乎没有任何关于gnomecanvas的Python绑定的文档。因此,我在使用代码示例并试图从C绑定中猜出错误 实际上,我的代码是通过在笔划中保留一个当前点列表,并在每个新项目处从该列表生成一个新的路径对象来工作的: def get_pointer_coords(self,event): 将self.window返回到世界(event.x,event.y) def渲染_路径(自): path_def=gnom

我正在尝试使用Python和gnomecanvas制作一个简单的绘图应用程序。遗憾的是,似乎没有任何关于gnomecanvas的Python绑定的文档。因此,我在使用代码示例并试图从C绑定中猜出错误

实际上,我的代码是通过在笔划中保留一个当前点列表,并在每个新项目处从该列表生成一个新的路径对象来工作的:

def get_pointer_coords(self,event):
将self.window返回到世界(event.x,event.y)
def渲染_路径(自):
path_def=gnomecanvas.path_def_new(self.cur_path)
self.current_item.set_bpath(路径定义)
def按钮按下(自身,事件):
is_core=event.device是gdk.device_get_core_pointer()
如果是_核心:
返回
self.drawing=True
(x,y)=自获取指针坐标(事件)
self.cur_path=[(gnomecanvas.MOVETO_OPEN,x,y)]
self.current_item=self.root().add(gnomecanvas.CanvasBpath
,outline_color=“#A6E22E”
,宽度×像素=1
,cap_style=gdk.cap_ROUND
)
def按钮_释放(自身、事件):
self.drawing=False
def运动通知(自我、事件):
is_core=event.device是gdk.device_get_core_pointer()
如果不是,则为_core和self.drawing:
(x,y)=自获取指针坐标(事件)
self.cur_path.append((gnomecanvas.LINETO,x,y))
self.render_path()
在我看来,这是一种相当低效的方法:每次指针移动时生成一个新对象;考虑到我从平板电脑上获得亚像素精度,这是相当常见的

我的问题是:有没有一种方法可以像在这个库的C版本中那样,简单地在每个指针运动上附加到现有的bpath

另一方面,有没有关于这个API的文档,因为我在谷歌上搜索了几个小时,却没有得到任何回报。

有关于原生C API的好文档,其中包含了所有C函数与gnomecanvas一起使用的说明

Python绑定通常不会公开所有描述的API,特别是您所需的函数,并且没有关于gnome画布的Python绑定的文档,所有的力量都被派去开发Gnome3相关的东西(您可以在上进行探索)

另一件事是gnomecavas非常过时,Python绑定也很过时;并且没有计划在将来支持它们(例如,Ubuntu的最后几个版本只是将这个包从一个版本复制到另一个版本,没有任何更改)

但还有另一个名为GooCanvas的canvas库,它使用Cairo在屏幕上绘制,似乎更为最新,有Python绑定,并被一些广泛的项目使用,如Pitivi