将GtkTreeView样式更改为类似Windows

时间:2018-05-07 23:15:02

标签: gtk

enter image description here

如何在上图中使GtkTreeView看起来像?请注意树形向导(虚线)和文件夹扩展器图标。

1 个答案:

答案 0 :(得分:1)

树指南由enable-tree-lines属性控制。渲染图标有点复杂。

首先,您必须使用图标名称为模型添加额外字段。接下来,您必须连接到"row-collapsed""row-expanded"信号,并手动更改模型中的图标名称。

然后你创建一个TreeViewColumn并用gtk_tree_view_column_pack_start打包2个渲染器。

column = gtk_tree_view_column_new ();
gtk_tree_view_column_set_title (column, "title");

renderer0 = gtk_cell_renderer_pixbuf_new ();
g_object_set (renderer0, "icon-name", "folder-open", NULL); // #1
gtk_tree_view_column_pack_start (column, renderer0, FALSE);
gtk_tree_view_column_set_visible (column, TRUE);

renderer1 = gtk_cell_renderer_text_new ();
gtk_tree_view_column_pack_start (column, renderer1, FALSE);
gtk_tree_view_column_set_attributes (column, renderer1, // #2
                                     "text", NAME_COL,
                                     NULL); 

此代码段对所有行使用一个图标(全局设置图标名称),但您可以从模型中获取图标名称。

如果库存图标不足,则必须使用GIcon或pixbuf,查看cellrendererpixbuf的"gicon""pixbuf"属性

编辑:如果问题是关于+/-按钮而不是三角形,请查看this answer或调整gtk3主题