我是GPSD的维护者。在了解到pygtk的gobject绑定被弃用之后,我尝试将Python测试客户机转发到pythongi。我使用pygi移植了xgps-转换.shscript,但我现在对xgpsspeed有困难。在
在我运行pygi之后-转换.sh在xgpsspeed上,我首先要手动修复“expose_event”信号,将其更改为“draw”。我预料到了这一点,因为我必须在成功的xgps端口上做同样的事情。在
运行修补版本会引发以下错误:
Traceback (most recent call last):
File "./xgpsspeed", line 72, in draw
event.area.x,
AttributeError: 'cairo.Context' object has no attribute 'area'
它显然与方法处理程序中的这段代码有关:
^{pr2}$我的搜索fu没有找到任何明显的原因,事件参数在3.x下被传递到Cairo上下文,而不是在2.x下传递它所期望的事件。我只能猜测处理程序签名已更改,但我找不到任何解决此问题的文档。在
回答我自己的问题,任何人谁找到这通过谷歌搜索。在
是的,draw方法在3.x中采用了不同的签名,该签名包含Cairo上下文,但与2.x中的Gdk expose事件不同
通过为sizer allocation事件创建处理程序,我得以进入下一步:
def on_size_allocate(self, _unused, allocation): self.width = allocation.width self.height = allocation.height
然后把矩形画成
self.cr.rectangle(0, 0, self.width, self.height)
这样我就不再需要公开事件的内容了。在
但是,为x,y参数插入0只是猜测该方法采用相对坐标,可能会有细微的错误。在
关于这些东西的文档非常糟糕。在
相关问题 更多 >
编程相关推荐