如何在(Py)GTK中绘制由重复图像组成的线条?

时间:2017-12-01 21:48:38

标签: python gtk pygtk cairo gtk2

我目前正在使用pygtk库在Linux上编写Python程序。我已经设法使窗口背景透明,并将所有单击传递到窗口下方的窗口。所以现在我有了一个看不见的窗口,因为任何点击和按键事件都会被转发到下面的窗口。

现在我想使用外部程序/设备告诉我的程序在哪里画线。我已经设法这样做了。

但是,在由重复单个图像组成的屏幕/窗口上绘制线条的正确和最有效的方法是什么。让我们说我有一部分激光线(8x8像素),现在我想从坐标(0,0)到(20,12)绘制一条线然后再到(22, 15),然后到(25,15)等等。用户将绘制它。

我的最后一个问题是:如果用户绘制到窗口上的许多坐标(因为它的背景看不见而看起来像屏幕),我如何用一个小的重复单个png图像绘制一条纹理线?

1 个答案:

答案 0 :(得分:0)

看看GooCanvas。这个库(基于Gdk / Gtk - Cairo的绘图工具构建)负责绘制项目的大部分细节,并且还负责自动重绘。您可以使用纹理,图像等绘制线条。此外,您可以在每个图层的事件上定义处理程序,并绘制每个元素。

结果是一个小部件,可以打包到GUI中的任何位置。寻找不是GooCanvas 2.0.x - 而不是旧的1.x应变。它可以通过内省在Python中使用。

您可以将填充颜色设置为pixbuf(不是直接PNG,但可以轻松转换)