在PyGTK TreeView中加粗/取消加粗行
我想在我的树形视图(TreeView)中让一些行变成粗体,而有些行则保持正常。之后,我还想在点击时取消粗体效果。
有什么简单的方法可以做到这一点吗?
1 个回答
7
我假设你有一个模型,这个模型里有一列是一些文本,并且有一个 gtk.CellRendererText
组件,它的 text
属性是设置为模型中那一列的索引。
如果你在这个模型中添加一个新列,你可以用它来设置每个单元格渲染器的字体粗细。只需要把 gtk.CellRendererText
组件的 weight
属性设置为模型中新列的索引,并把 weight-set
设置为 True
。
之后,你只需要在模型中使用任何 pango.WEIGHT
常量来设置字体粗细,比如 pango.WEIGHT_NORMAL
和 pango.WEIGHT_BOLD
。
举个例子,假设你的模型列是这样的(一个是文本,另一个是字体粗细):
然后你为测试添加了几行数据:
(注意 pango.WEIGHT_NORMAL=400
和 pango.WEIGHT_BOLD=700
)
有了这个模型,你可以创建一个 gtk.TreeView
,里面有一列和一个文本渲染器:
在渲染器中,你把 text
属性设置为模型中的 text
列:
然后把 weight
属性设置为模型中的 weight
列:
最后,你用测试数据得到的结果是:
在这里你可以看到,文本是按照模型中设置的字体粗细显示的。