我想在我的 TreeView 中将一些行加粗,而有些行在我将它们附加到 TreeView 时不加粗,稍后,我想在单击时取消加粗行。
最简单的方法是什么?
我想在我的 TreeView 中将一些行加粗,而有些行在我将它们附加到 TreeView 时不加粗,稍后,我想在单击时取消加粗行。
最简单的方法是什么?
我假设您有一个模型,其中包含带有一些文本的列,并且gtk.CellRendererText小部件具有text设置为该模型中列索引的属性。
如果向该模型添加新列,则可以使用它来设置每个单元格渲染器中使用的字体粗细。为此,只需将gtk.CellRendererText小部件属性设置为模型中weight的新列索引并将.weight-setTrue
之后,您只需要使用任何pango.WEIGHT常量在模型中设置字体粗细,例如pango.WEIGHT_NORMAL和pango.WEIGHT_BOLD。
例如,假设这些是您的模型列(一个用于文本,一个用于字体粗细):

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

(注意pango.WEIGHT_NORMAL=400和pango.WEIGHT_BOLD=700)
使用此模型,您可以gtk.TreeView使用列和文本渲染器创建一个:

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

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

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

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