QTreeWidget是否重新计算每行内容的行高?

2024-10-06 12:36:55 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个快速的。我在每个QTreeWidgetItem中放置了一个布局包含10个按钮的QWidget,我可以扩展这个契约。在

如果我收缩QWidget(hide),那么行的高度保持不变。它应该被调整到小得多,只包含取消隐藏按钮。行所占用的空间仍为空。只有当我添加一个新的小部件。重新计算行的高度。扩张也是如此。如果我扩展widget,它的高度仍然是17像素。只有当我添加一个新的小部件时,行的高度才会重新计算。在

QTreeWidget中是否有一个内置函数,我可以调用它来更新它的行高-内容,还是需要循环每个项并手动调整其高度?在

另外,在QTreeWidgetItem中放置一个包含布局和许多小部件的QWidget是个好主意吗?如果我想要500个QtreeWidgetItems,每个QtreeWidgetItems中都有20个按钮/etc项?在

问候 达里乌斯

编辑1。在

我在这上面花了不少时间。尝试了不同的道路,但到目前为止没有运气。我附上了我的粗略代码来说明这个问题。只需点击隐藏1-2次,看看会发生什么。我很难理解“sizeHint”是怎么工作的。。。在

附上我的测试下面。在

^{1}$

Tags: 函数高度部件空间像素布局widget按钮
1条回答
网友
1楼 · 发布于 2024-10-06 12:36:55

据我所知,没有办法直接调整行大小,尽管可以通过将表实现为QTreeView+QSortFilterProxyModel子类对(PyQt: How Can I set row heights of QTreeView)来实现动态行高

或者,我设想从表中删除小部件(removeItemWidget),然后立即重新添加它,这将导致行大小重新计算,尽管我还没有对此进行测试。在

至于我对表内布局设置的看法,有两点值得注意:

  • Qt布局的填充和调整速度很慢。在
  • 具有可变行高的Qt表通常比较慢。在

也就是说500并不是一个很大的数字。我可能会拼凑出一个快速原型,看看它在一系列机器上的性能如何,看看性能是否可以接受,然后担心如果太慢,会探索其他路线。我预计这种情况下的性能将主要取决于布局的复杂程度。在

相关问题 更多 >