这是一个快速的。我在每个QTreeWidgetItem中放置了一个布局包含10个按钮的QWidget,我可以扩展这个契约。在
如果我收缩QWidget(hide),那么行的高度保持不变。它应该被调整到小得多,只包含取消隐藏按钮。行所占用的空间仍为空。只有当我添加一个新的小部件。重新计算行的高度。扩张也是如此。如果我扩展widget,它的高度仍然是17像素。只有当我添加一个新的小部件时,行的高度才会重新计算。在
QTreeWidget中是否有一个内置函数,我可以调用它来更新它的行高-内容,还是需要循环每个项并手动调整其高度?在
另外,在QTreeWidgetItem中放置一个包含布局和许多小部件的QWidget是个好主意吗?如果我想要500个QtreeWidgetItems,每个QtreeWidgetItems中都有20个按钮/etc项?在
问候 达里乌斯
编辑1。在
我在这上面花了不少时间。尝试了不同的道路,但到目前为止没有运气。我附上了我的粗略代码来说明这个问题。只需点击隐藏1-2次,看看会发生什么。我很难理解“sizeHint”是怎么工作的。。。在
附上我的测试下面。在
^{1}$
据我所知,没有办法直接调整行大小,尽管可以通过将表实现为QTreeView+QSortFilterProxyModel子类对(PyQt: How Can I set row heights of QTreeView)来实现动态行高
或者,我设想从表中删除小部件(removeItemWidget),然后立即重新添加它,这将导致行大小重新计算,尽管我还没有对此进行测试。在
至于我对表内布局设置的看法,有两点值得注意:
也就是说500并不是一个很大的数字。我可能会拼凑出一个快速原型,看看它在一系列机器上的性能如何,看看性能是否可以接受,然后担心如果太慢,会探索其他路线。我预计这种情况下的性能将主要取决于布局的复杂程度。在
相关问题 更多 >
编程相关推荐