如何获取pygtk绘图区的surface?

How to get the surface in pygtk drawing area?

我想将 pygtk 中的 cairo 绘图保存到磁盘。

#!/usr/bin/env python3

import cairo
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

def draw(da, ctx):
    # ...
    
    # How to get the surface ?
    surface.write_to_png("image.png")


def main():
    win = Gtk.Window()
    
    da = Gtk.DrawingArea()
    win.add(da)
    da.connect('draw', draw)
    
    win.show_all()
    Gtk.main()


if __name__ == '__main__':
    main()

如何获得表面?或者有什么更好的方法可以将图纸保存到磁盘?

我找到了。

surface = ctx.get_group_target()