我正在尝试构建一个上下文菜单,用户可以右键单击QTreeWidget并选择所有项目。
答案 0 :(得分:1)
您可以使用QTreeView.selectAll()
但仅在将选择模式设置为允许多项选择的内容后使用QAbstractItemView.setSelectionMode()
。
示例(在PyQt4中使用QtGui而不是QtWidgets):
from PyQt5 import QtWidgets
app = QtWidgets.QApplication([])
widget = QtWidgets.QTreeWidget()
widget.addTopLevelItems([QtWidgets.QTreeWidgetItem(['dog']), QtWidgets.QTreeWidgetItem(['car'])])
widget.setSelectionMode(QtWidgets.QAbstractItemView.ContiguousSelection)
widget.selectAll()
widget.show()
app.exec_()
看起来像:
答案 1 :(得分:0)
这是一种以递归方式遍历每个项目及其子项并将其全部选中的方法。它利用了每个QTreeWidget
根的invisibleRootItem
。您还可以将树中的任何项目传递给此函数,它将选择该项目及其所有子项。
def select_item(item)
item.setSelected(True)
for i in range(item.childCount()):
child = item.child(i)
select_item(child)
item = tree.invisibleRootItem()
select_item(item)