如何自动展开QTreeWidget项
下面的代码创建了一个简单的 QTreeWidget,里面有两个项目,一个是另一个的父项。
我希望这些项目一开始就能展开(这样用户就不需要点击箭头来展开项目):
这是默认的样子:
而我希望它的样子是这样的(展开后:“C”项目是可见的):
需要设置哪个属性才能实现这个效果呢?
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
class Tree(QtGui.QTreeWidget):
def __init__(self, *args, **kwargs):
super(Tree, self).__init__()
parentItem=QtGui.QTreeWidgetItem('P')
self.addTopLevelItem(parentItem)
childItem=QtGui.QTreeWidgetItem('C')
parentItem.insertChild(0, childItem)
self.show()
tree=Tree()
sys.exit(app.exec_())
1 个回答
8
你可以使用 QTreeWidget.expandToDepth()
这个方法。
在你的情况下:
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
class Tree(QtGui.QTreeWidget):
def __init__(self, *args, **kwargs):
super(Tree, self).__init__()
parentItem=QtGui.QTreeWidgetItem('P')
self.addTopLevelItem(parentItem)
childItem=QtGui.QTreeWidgetItem('C')
parentItem.insertChild(0, childItem)
self.expandToDepth(0)
self.show()
tree=Tree()
sys.exit(app.exec_())
你也可以使用 expandAll()
这个方法来展开所有内容,而不仅仅是展开到某个深度。