5

我想在我的 TreeView 中将一些行加粗,而有些行在我将它们附加到 TreeView 时不加粗,稍后,我想在单击时取消加粗行。

最简单的方法是什么?

4

1 回答 1

7

我假设您有一个模型,其中包含带有一些文本的列,并且gtk.CellRendererText小部件具有text设置为该模型中列索引的属性。

如果向该模型添加新列,则可以使用它来设置每个单元格渲染器中使用的字体粗细。为此,只需将gtk.CellRendererText小部件属性设置为模型中weight的新列索引并将.weight-setTrue

之后,您只需要使用任何pango.WEIGHT常量在模型中设置字体粗细,例如pango.WEIGHT_NORMALpango.WEIGHT_BOLD

例如,假设这些是您的模型列(一个用于文本,一个用于字体粗细):

模型列

这些是您为测试添加的几行:

模型行

(注意pango.WEIGHT_NORMAL=400pango.WEIGHT_BOLD=700

使用此模型,您可以gtk.TreeView使用列和文本渲染器创建一个:

树视图层次结构

在渲染器中,您将text属性设置text为模型中的列:

单元格渲染器文本

以及模型中列的weight属性:weight

单元格渲染器权重

您使用添加到模型的测试数据获得的结果是:

最后结果

您可以在其中看到文本以模型中设置的字体粗细显示。

于 2011-12-13T15:33:49.233 回答