Geheimnisvolle GObject Warnung: assertion `G_IS_OBJECT (object)' failed

Habe ich eine Warnung wenn ich mein GTK (Python-GObject-Introspektion) Anwendung, und ich kann nicht herausfinden, seiner Quelle. Wenn die Anwendung geladen wird, und ich bin das Auffüllen einer GtkListStore, nachdem ich das allererste mal Anhängen einer Zeile, bekomme ich die folgende Warnung:

/usr/lib/python2.7/site-packages/gi/types.py:44: Warning: g_object_set_qdata: assertion `G_IS_OBJECT (object)' failed
  return info.invoke(*args)

Den rest der Zeilen Anhängen ohne weitere Warnungen. In der Tat, es ist immer nur ausgelöst, einmal, immer auf das erste Element angehängt werden. Aber, der eigentliche Inhalt der Zeile scheinen nicht egal, es ist erhöhen die Warnung, egal was. Wenn das Programm fertig geladen ist, werden alle Zeilen scheinen in Ordnung zu sein, wenn ich navigieren Sie in der TreeView.

Meiner Liste speichern wie folgt aussieht:

self.list_store = Gtk.ListStore(bool, str, str, str, str, str, str,
                                str, str, str, str, GdkPixbuf.Pixbuf,
                                str, str, str, object, Pango.Weight)

Den letzten Spalten sind ausgeblendet, aus dem Zusammenhang GtkTreeView, aber die Warnung tritt auf, bevor das TreeView erstellt wird, so bin ich sicher, es kommt aus dem ListStore.Unnötig zu sagen, ich bin mir sicher, dass alle Zeilen, ich bin vorbei in das richtige format da, wie ich schon sagte, die Warnung wird immer ausgelöst, nachdem die erste Zeile, egal in welcher Zeile füge ich zuerst.

Hat jemand eine Idee, was könnte die Ursache sein? Es ist nicht zu verhindern, meine Anwendung ausgeführt wird, also es ist kein Notfall, aber ich würde lieber nicht haben, es spuckt Warnungen für den Anwender.


Bearbeiten:
Ich bestätigte mit Python -W all commandline argument, die Warnung ist tatsächlich ausgelöst wird, für alle Zeilen.

Ich habe versucht, ein Schritt in die append() Methode mit pdb aber, interstingly, er bleibt stecken in einer Schleife, in der gi - code, wenn es versucht, die Einstellung der Wert der Spalte, in der die GdkPixbuf, so dass ich eigentlich nie sehen, die Warnung ausgelöst, wenn das Debuggen des Programms. Meine Vermutung ist, dass die Pixbuf das problem verursacht, aber ich habe keine Ahnung, wie es zu ändern, um loszuwerden die Warnung. Die Pixbuf richtig gerendert wurde in der Strukturansicht ist, so bin ich nicht sicher, was Los ist.

  • Ich denke, standardmäßig Python schweigen wiederholten Warnungen des gleichen Typs - also einfach nur weil du es einmal sehen bedeutet nicht, es ist nur einmal angehoben.
  • Hm ok, das ist ein bisschen beruhigend.Meine Vermutung ist, dass es entweder nicht zu mögen den Pixbuf oder das Objekt in dort, aber ich habe keine Ahnung, wie sonst könnte ich es angeben.
  • Hat Sie versuchen einen backtrace?
  • Ok, zunächst einmal, indem Sie die Anwendung starten mit Python -W all commandline argument, ich bestätigte, dass die Abmahnung tatsächlich geschieht für jede Zeile, die Hinzugefügt wird.
  • Ich denke, ich bin neu, um stack-traces.Die traceback - Modul scheint nicht zu helfen, da es eine Warnung ist und nicht eine Ausnahme; ich kann nicht scheinen, um zu erfassen, Stapel, in dem die Warnung Auftritt. Ich konnte das warnings Modul zu zwingen, Warnungen ausgelöst werden, als Ausnahmen, aber dieser code ist passiert in einem thread und warnings ist nicht thread-safe. Irgendwelche Tipps wäre dankbar.
  • Ich wusste nicht, dass warnings ist nicht thread-safe. Aber wäre es nicht die Ausnahme noch zu bekommen erhöht?
  • Da warnings verändert den globalen Kontext, würde ich das nicht riskieren.

InformationsquelleAutor | 2011-08-11
Schreibe einen Kommentar