确定TreeView行的高度

Joã*_*nto 5 python gtk pygtk

我想设置树视图小部件的高度以容纳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"信号处理程序运行时,相同的代码将返回有效高度.

Lou*_*uis 2

大概是这样的:(从 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)

  • 我已经通过将调整大小移动到 on_draw 事件来修复,该事件在显示树视图后发生。 (2认同)