【发布时间】:2020-12-30 21:38:20
【问题描述】:
我想用QTreeWidget 模拟disclosure triangle / disclosure widget。为此,我创建了一个只有一个顶级项目的QTreeWidget。它的背景是透明的,它的标题是不可见的。
这里是代码(mwe):
import sys
from PySide2.QtWidgets import ( QApplication,
QLabel,
QTreeWidget,
QTreeWidgetItem,
QVBoxLayout,
QWidget)
class DisclosureTree(QTreeWidget):
def __init__(self):
super().__init__()
# Add content
self.setColumnCount(1)
parent_item = QTreeWidgetItem(self, ['Disclosure triangle'])
self.addTopLevelItem(parent_item)
parent_item.addChild(QTreeWidgetItem(parent_item, 'AAA'))
parent_item.addChild(QTreeWidgetItem(parent_item, 'BBB'))
parent_item.addChild(QTreeWidgetItem(parent_item, 'CCC'))
# Cosmetics
self.header().hide()
self.setStyleSheet('background-color: transparent;')
if __name__ == '__main__':
app = QApplication()
vbox = QVBoxLayout()
disclosuretree = DisclosureTree()
label = QLabel('Plenty of space above…')
vbox.addWidget(disclosuretree)
vbox.addWidget(label)
vbox.addStretch()
widget = QWidget()
widget.setLayout(vbox)
widget.show()
sys.exit(app.exec_())
问题是我希望小部件高度自动调整大小,无论它是折叠还是展开,例如这里:
有人知道怎么做吗?非常感谢,如果我能提供帮助,请告诉我!
【问题讨论】:
标签: python pyside2 qtreeview qtreewidget