gespeichert werden. In diesen Fällen ist es nützlich, die Dokumentation von Gtk selbst zu lesen, anstelle von PyGtk, da sie vollständiger sind.
In diesem Fall werden die entsprechenden Funktionen sind gtk_image_set_from_pixmap()
und gtk_image_get_pixbuf()
:
Gets the GdkPixbuf being displayed by the GtkImage. The storage type of the image must be GTK_IMAGE_EMPTY or GTK_IMAGE_PIXBUF.
Das Problem ist, dass das GtkImage
Widget halten kann sowohl ein GdkPixbuf
, ein GdkPixmap
, ein GdkImage
... aber es zwischen ihnen nicht konvertieren kann, Das heißt, Sie können nur wiederherstellen, was Sie gespeichert haben.
Sie speichern eine Pixmap und versuchen, einen Pixbuf zu bekommen, und das wird nicht funktionieren. Nun, was ist die Lösung? Das hängt davon ab, was Sie genau machen wollen. Wahrscheinlich ist es genug, wenn Sie es in einen Pixbuf mit gtk.pixbuf.get_from_drawable() konvertieren:
w,h = disp.pixmap.get_size()
pb = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, w, h)
pb.get_from_drawable(disp.pixmap, disp.pixmap.get_colormap(),
0, 0, 0, 0, width, height)
pb.save('path.png')