Я пытаюсь установить цвет фона для некоторых строк Gtk.ColumnView в Gtk 4. Мне удалось установить собственный стиль для обычных виджетов, используя:
cssProvider = Gtk.CssProvider()
cssProvider.load_from_file(Gio.File.new_for_path("/path/to/css/file.css"))
Gtk.StyleContext.add_provider_for_display(Gdk.Display.get_default(), cssProvider, Gtk.STYLE_PROVIDER_PRIORITY_USER)
mywidget.add_css_class("custom-widget")
Однако я не могу заставить это работать в строке столбца. Запуск add_css_class для элемента, переданного Gtk.SignalListItemFactory, возвращает AttributeError: 'TreeListRow' object has no attribute 'add_css_class'.
Я использую PyGObject, но любые мысли или код на C/C++/rust/и т. д. все равно был бы очень признателен.





В ошибке указано, что объект «mywidget» имеет тип TreeListRow, который не является виджетом, а представляет собой что-то вроде оболочки вокруг объектов, сгруппированных в «строку». TreeListRow является производным от GObject: https://docs.gtk.org/gtk4/class.TreeListRow.html . Ни GObject, ни TreeListRow не имеют таких методов CSS.
Попробуйте применить set_css_classes() или add_css_class() к виджетам GTK, которые содержатся в TreeListRow.