ValueError: image should be a GdkPixbuf or empty

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samhayne hat geschrieben:Für Deine persönliche Frustration kann ich nix.
Bitte ausführen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Samhayne
User
Beiträge: 19
Registriert: Montag 25. Februar 2008, 19:18

Dein Ton war unpassend.
Es gab keinen Grund mich anzupissen.

Ein "schreib's bitte so, daß man's einfach über 'ne Textdatei ausführen kann - dann tu ich mir leichter nachzukucken" wär auch 'ne Möglichkeit gewesen. :wink:

Ursprünglich bin ich davon ausgegangen, daß Profis das eh mit einem Blick sehen ... ich selbst hab ja erst vor ein paar Tagen mit Python / GTK angefangen und bin noch ziemlich am kämpfen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Samhayne hat geschrieben:Dein Ton war unpassend.
Es gab keinen Grund mich anzupissen.
Hab ich nicht. BlackJack hat um ein lauffähiges Beispiel gebeten. Hast du mehrmals nicht geschafft zu liefern. Was würdest du dir da denken?
Samhayne hat geschrieben:Ein "schreib's bitte so, daß man's einfach über 'ne Textdatei ausführen kann - dann tu ich mir leichter nachzukucken" wär auch 'ne Möglichkeit gewesen. :wink:
Richtig. Ich bin davon ausgegangen, dass "lauffähiges Beispiel" dies impliziert. Du bist ja selbst darauf gekommen, dass es so einfacher ist sich das anzusehen.

Gut, davon abgesehen habe ich hier gerade kein GTK+ verfügbar, ich werds mir dann später auf meinem GNOME-Desktop ansehen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Samhayne
User
Beiträge: 19
Registriert: Montag 25. Februar 2008, 19:18

Leonidas hat geschrieben:
Samhayne hat geschrieben:Dein Ton war unpassend.
Es gab keinen Grund mich anzupissen.
Hab ich nicht. BlackJack hat um ein lauffähiges Beispiel gebeten. Hast du mehrmals nicht geschafft zu liefern. Was würdest du dir da denken?
... daß der Kerl nicht ganz verstanden hat, was ich will.
Lauffähig war der Code ja letztlich. Man musste ihn nur in irgendeine Klasse reinkopieren. (oder halt schnell die ".self"s löschen... hatte ich nicht drangedacht. Mea Culpa.)

Das...
Leonidas hat geschrieben:Wenn du kein Beispiel machen willst, warum erwartest du dann Hilfe?
...war deswegen einfach unangebracht. Hatte mich ja bemüht, das Ding zu entwirren, nachdem ich das Problem unterschätzt hatte.
Bin ja erst davon ausgegangen, daß die 4 Zeilen aus dem ersten Posting reichen müssten.
Danach kamen aber Fragen nach mehr Code.
Gut, davon abgesehen habe ich hier gerade kein GTK+ verfügbar, ich werds mir dann später auf meinem GNOME-Desktop ansehen.
cool. thx.
fred.reichbier
User
Beiträge: 155
Registriert: Freitag 29. Dezember 2006, 18:27

Hallo,

bei mir kommen da diese Warnungen von GTK:
fred@gnom:~/dev$ python test.py
test.py:12: GtkWarning: /build/buildd/gtk+2.0-2.12.0/gdk/gdkpixbuf-drawable.c:1247: Source drawable has no colormap; either pass in a colormap, or set the colormap on the drawable with gdk_drawable_set_colormap()
self.pixmap.draw_pixbuf(None, self.PopImageGTK.get_pixbuf(), 0,0,0,0) # Konvertierung: GTKImage -> pixmap
test.py:12: GtkWarning: The gdk_draw_*_image require the drawable argument to
have a specified colormap. All windows have a colormap,
however, pixmaps only have colormap by default if they
were created with a non-NULL window argument. Otherwise
a colormap must be set on them with gdk_drawable_set_colormap

self.pixmap.draw_pixbuf(None, self.PopImageGTK.get_pixbuf(), 0,0,0,0) # Konvertierung: GTKImage -> pixmap
Traceback (most recent call last):
File "test.py", line 20, in <module>
tolle_klasse()
File "test.py", line 17, in __init__
pixelbuf = self.PopImageGTK.get_pixbuf() #ValueError!!
ValueError: image should be a GdkPixbuf or empty
Ich hab mal das für dich interessante eingefettet.

Gruß Fred
Samhayne
User
Beiträge: 19
Registriert: Montag 25. Februar 2008, 19:18

Hey Fred.

Siehe:
Samhayne hat geschrieben:Vermutlich meinst u.a. das Drawable... (von lauffähig sagte BlackJack ja nix :) )

Okay... in der Pixmap Initialisierung kann man es einfach None setzen... dann wirft er zwar 'ne Warnung, aber der Code läuft durch... bis zur Problemzeile.
Am Warning liegt's nicht... in meinem Originalcode kommt dieses auch nicht, weil ich da 'n Drawable als Parameter übergebe.
Samhayne
User
Beiträge: 19
Registriert: Montag 25. Februar 2008, 19:18

Oh mann.... hab's endlich.

Für die Nachwelt:

für die Rückumwandlung: pixmap -> GTKImage

statt

Code: Alles auswählen

self.PopImageGTK.set_from_pixmap(self.pixmap, None)      # Konvertierung: pixmap -> GTKImage
dieses:

Code: Alles auswählen

pixmap = self.pixmap
width, height = pixmap.get_size()
pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, 0, 8, width, height)
pixbuf.get_from_drawable(pixmap, pixmap.get_colormap(), 0, 0, 0, 0, width, height)      # Konvertierung: pixmap -> pixbuf

self.PopImageGTK.set_from_pixbuf(pixbuf)    # Konvertierung: pixbuf -> GTKimage
Dann klappt's auch später wieder mit dem .get_pixbuf()

(HASS!)
Antworten