У меня появляется предупреждение при запуске приложения GTK (Python GObject introspection), и я не могу определить его источник.Когда приложение загружается и я заполняю 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, поэтому я не уверен, что происходит.