我想设置树视图小部件的高度以容纳N行,为了做到这一点,我需要识别单行高度.
我使用下面的代码:
path = Gtk.TreePath().new_first()
height = tree_view.get_cell_area(path, column).height
Run Code Online (Sandbox Code Playgroud)
创建树窗口小部件,填充数据模型,然后选择第一行后,高度设置为0.我缺少什么?
PS:从"row_activated"信号处理程序运行时,相同的代码将返回有效高度.
大概是这样的:(从 gtk 站点读取):
“如果path指向当前未显示的路径,则矩形的y和height属性将为0。所有单元格矩形的总和不会覆盖整个树;例如,行之间有额外的像素。返回的矩形相当于传递给gtk.CellRenderer.render()方法的cell_area。这个方法只有在实现了treeview的情况下才有效。
您还可以使用以下代码强制在 gtk 中显示待处理操作:
## force the refresh of the screen
while gtk.events_pending():
gtk.main_iteration()
Run Code Online (Sandbox Code Playgroud)