移植到pythongi时未知的Cairo上下文字段

2024-05-14 20:35:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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下传递它所期望的事件。我只能猜测处理程序签名已更改,但我找不到任何解决此问题的文档。在


Tags: event处理程序客户机事件维护者areagpsdpygtk
1条回答
网友
1楼 · 发布于 2024-05-14 20:35:30

回答我自己的问题,任何人谁找到这通过谷歌搜索。在

是的,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只是猜测该方法采用相对坐标,可能会有细微的错误。在

关于这些东西的文档非常糟糕。在

相关问题 更多 >

    热门问题