2016-06-11 8 views

ответ

0

Вот путь, который будет рекурсивно проходить через каждый элемент и его детей и выбирать их все. Он использует преимущество invisibleRootItem в корне каждого QTreeWidget. Вы также можете передать любой элемент в дереве этой функции и выбрать этот элемент и все его дочерние элементы.

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) 
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_() 

и это выглядит следующим образом:

enter image description here

Смежные вопросы