确定TreeView行的高度
我想设置一个树形视图(treeview)控件的高度,以便能容纳N行数据。为此,我需要先确定每一行的高度。
我使用了下面的代码:
path = Gtk.TreePath().new_first()
height = tree_view.get_cell_area(path, column).height
在创建树形控件、填充数据模型并选择第一行后,高度却被设置为0。我漏掉了什么呢?
附注:当从“行激活”(row_activated)信号处理器中运行相同的代码时,会返回一个有效的高度。
1 个回答
2
可能是这个:(从gtk网站上读取):
“如果路径指向一个当前未显示的路径,那么矩形的y值和高度属性将为0。所有单元格的矩形总和并不能覆盖整个树形结构;例如,行与行之间还有额外的像素。返回的矩形等同于传递给gtk.CellRenderer.render()方法的cell_area。这个方法只有在树形视图被实际显示出来时才有效。”
你也可以用这段代码强制在gtk中显示待处理的操作:
## force the refresh of the screen
while gtk.events_pending():
gtk.main_iteration()