Загадочное предупреждение GObject: утверждение `G_IS_OBJECT (object) 'не выполнено

У меня появляется предупреждение, когда я запускаю приложение GTK (самоанализ Python GObject) и не могу определить его источник. Когда приложение загружается и я заполняю GtkListStore, после самого первого добавления строки я получаю следующее предупреждение:

/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)

Остальные строки добавляются без дальнейших предупреждений. Фактически, он всегда вызывается только один раз, всегда для первого добавляемого элемента. Но фактическое содержимое строки, похоже, не имеет значения; это вызывает предупреждение, несмотря ни на что. Когда программа завершает загрузку, все строки кажутся в порядке, когда я просматриваю их в TreeView.

Мое хранилище списков выглядит так:

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

Последние несколько столбцов скрыты от связанного GtkTreeView, но появляется предупреждение до создания TreeView, поэтому я уверен, что он поступает из ListStore. Излишне говорить, что я уверен, что все строки, которые я передаю, имеют правильный формат, поскольку, как я уже сказал, предупреждение всегда возникает после первая строка, независимо от того, какую строку я добавлю первой.

Кто-нибудь знает, что может быть причиной этого? Это не мешает запуску моего приложения, поэтому это не чрезвычайная ситуация, но я бы предпочел, чтобы оно не выдавало предупреждения для конечного пользователя.


Изменить: Я подтвердил, используя аргумент командной строки Python -W all , что предупреждение действительно выдается для всех строк.

Я попытался войти в метод append () , используя pdb , но, что интересно, он застревает в цикле в коде gi , когда пытается установить значение столбца, содержащего GdkPixbuf, поэтому я никогда не вижу предупреждения при отладке программы. Я предполагаю, что Pixbuf вызывает проблему, но я не знаю, как изменить его, чтобы избавиться от предупреждения. Pixbuf правильно отображается в TreeView, поэтому я не уверен, что происходит.

5
задан 12 August 2011 в 10:55
поделиться