PyGObject自定义小部件:如何绘制无效区域?

时间:2014-02-19 08:38:49

标签: python gtk3 pygobject gobject-introspection

我知道您需要在PyGObject中创建Gtk.DrawingArea子类才能创建自定义窗口小部件。然后,将draw信号连接到如下所示的回调:

def on_draw(drawing_area, cr):
    # do something with cr
    return False

要请求重绘,请拨打my_widget.queue_draw()

现在,我知道您可能会要求使用my_widget.queue_draw_area()重绘表面的特定区域。在此之后调用on_draw回调时,您如何知道要绘制的区域?

1 个答案:

答案 0 :(得分:1)

调用draw虚函数,其中无效区域已经是开罗上下文中强加的剪辑的一部分。

如果你想知道剪裁区域的范围,可以使用gdk_cairo_get_clip_rectangle()的python包装器。