自动增长QTreeWidget(或QTableWidget)

时间:2017-04-14 20:19:48

标签: qt qtreewidget

我将QTreeWidget放入QVBoxLayout。

self._tree = QTreeWidget()
layout = QVBoxLayout()
layout.addWidget(self._some_other_widget)
layout.addWidget(self._tree)
layout.addStretch()
self.setLayout(layout)

此树窗口小部件中的所有节点始终展开。 我想创建具有最小高度的树窗口小部件(例如,对于一行/项)。添加新项目时,此树窗口小部件也会增长以显示所有项目。如何才能做到这一点?提前谢谢。

1 个答案:

答案 0 :(得分:0)

至少有两种解决方案:

  1. 使用self._tree.setSizeAdjustPolicy(QAbstractScrollArea.AdjustToC‌​ontents)。谢谢你,G.M。

  2. 我还找到了另一个解决方案:

    def sizeHint(self):
        return self._sizeHint()
    
    def minimumSizeHint(self):
        return self._sizeHint()
    
    def _sizeHint(self):
        sh = super().sizeHint()
        if self._item_count > 0:
            return QSize(sh.width(), self.sizeHintForRow(0) * self._item_count)
        else:
            return QSize(sh.width(), 40)