У меня есть размер файла в байтах, хранящийся в Gtk.ListStore
, и я хочу, чтобы они отображались в удобочитаемом формате Gtk.CellRendererText
.Читая документацию, кажется, Gtk.TreeViewColumn.set_cell_data_func()
- это способ достичь этого.Настройка работает без ошибок, но как только будет отображена ячейка, после нескольких неудачных утверждений произойдет сбой всего приложения.
Вот код, который я использую:
self._builder.get_object("ContentList.Size").set_cell_data_func(
Gtk.CellRendererText(),
self.render_formatted_size
)
И это то, что напечатано на stderr :
/usr/lib/python3.7/site-packages/gi/overrides/Gio.py:44: Warning: g_object_freeze_notify: assertion 'G_IS_OBJECT (object)' failed
return Gio.Application.run(self, *args, **kwargs)
/usr/lib/python3.7/site-packages/gi/overrides/Gio.py:44: Warning: g_object_get: assertion 'G_IS_OBJECT (object)' failed
return Gio.Application.run(self, *args, **kwargs)
/usr/lib/python3.7/site-packages/gi/overrides/Gio.py:44: Warning: g_object_set: assertion 'G_IS_OBJECT (object)' failed
return Gio.Application.run(self, *args, **kwargs)
/usr/lib/python3.7/site-packages/gi/overrides/Gio.py:44: Warning: g_object_is_floating: assertion 'G_IS_OBJECT (object)' failed
return Gio.Application.run(self, *args, **kwargs)
/usr/lib/python3.7/site-packages/gi/overrides/Gio.py:44: Warning: g_object_get_qdata: assertion 'G_IS_OBJECT (object)' failed
return Gio.Application.run(self, *args, **kwargs)
Содержание self.render_formatted_size
здесь не должно иметь значения.Кажется, что он никогда не выполняется.
PS: Добавление дополнительных строковых столбцов в модель не вариант, так как я хочу иметь возможность изменять единицы отображения (SI, IEC) в любое время.