带透明的PyGTK状态图标

2 投票
1 回答
514 浏览
提问于 2025-04-15 20:13

我正在尝试创建一个带透明背景的 PyGTK 状态图标。我需要在运行时绘制状态图标的内容。

状态图标需要一个 Pixbuf 对象(这个对象可以有透明部分)。这没问题:

pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, width, height)
pixbuf.fill(0xffffffff)

问题是,我无法直接在 Pixbuf 对象上绘图。我现在的做法是先在一个 Pixmap 上绘图,然后再把它转换成 Pixbuf,但不幸的是,Pixmap 是不能有透明部分的。

我该如何获得一个可以在运行时绘制的透明背景的 Pixbuf 呢?

问候,
Philip

1 个回答

4

你可以通过add_alpha()这个方法给Pixbuf对象添加透明度。下面这一行代码会把颜色#ffffff的透明度设置为零,也就是完全透明:

pixbuf = pixbuf.add_alpha(True, 0xFF, 0xFF, 0xFF)

太简单了... :-|

撰写回答