我知道您需要在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
回调时,您如何知道要绘制的区域?
答案 0 :(得分:1)
调用draw
虚函数,其中无效区域已经是开罗上下文中强加的剪辑的一部分。
如果你想知道剪裁区域的范围,可以使用gdk_cairo_get_clip_rectangle()的python包装器。