在 Gtk+ 中,每列可以有多个单元格渲染器,但是我希望在不同的行中有不同的单元格渲染器。例如,我想在树视图中列出对象的属性。对于布尔属性,使用切换按钮比编辑GtkCellRendererText
并输入TRUE
or更简单FALSE
。
我知道我可以通过设置回调来对行数据做出反应gtk_tree_view_column_set_cell_data_func()
。但是在回调中,单元格渲染器已经固定,我只能改变它的外观。
编辑: ptomato 指出了如何在 Vala 中完成。我获取了这些信息并构建了一个基于 C 的单元格渲染器,该渲染器采用 GObject 和列表存储(假设第一列包含属性名称)来根据属性的类型显示自定义单元格。我还对一个树视图小部件进行了子类化,它结合了它以便于使用。这两个组件都可以在Github上找到。