В целях тестирования и документирования я хотел бы создать снимок экрана объекта gtk.Window. На данный момент я следую базовому образцу pygtk. Пример с моими изменениями выглядит следующим образом:
import gtk
def main():
button = gtk.Button("Hello")
scroll_win = gtk.ScrolledWindow()
scroll_win.add(button)
win = gtk.Window(gtk.WINDOW_TOPLEVEL)
win.add(scroll_win)
win.show_all()
if win.is_drawable() is not True:
raise RuntimeError("Not drawable?")
width, height = win.get_size()
pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, False, 8,
width, height)
screenshot = pixbuf.get_from_drawable(win, win.get_colormap(),
0, 0, 0, 0, width, height)
screenshot.save('screenshot.png', 'png')
if __name__ == '__main__':
main()
gtk.main()
Я получаю ошибку при вызове метода get_from_drawable.
TypeError: Gdk.Pixbuf.get_from_drawable() argument 1 must be gtk.gdk.Drawable, not gtk.Window
Очевидно пример скриншота , который я объединил в базовый пример, использует gtk.gdk.Window, который наследуется от gtk.gdk.Drawable.
Мои вопросы: