Если вы хотите удалить всех потомков родителя, вы можете использовать removeRows(row, count, parent=None)
.
Поскольку, как и index()
, и другие функции, вы можете использовать родительский аргумент , вы можете получить количество дочерних элементов, используя rowCount(parent=None)
.
В любом случае, если родительский аргумент не указан, вместо него рассматривается аргумент QtCore.QModelIndex()
: «пробел» «экземпляр QModelIndex считается недействительным, и он также считается таким же, как индекс root модели как таковой.
Но . Если указан действительный родитель, он будет использоваться в качестве ссылки для параметров строки и столбца.
def removeChildren(self, index):
self.model.removeRows(
# remove as many rows as the row count of the *parent*,
# starting from row 0
0, self.model.rowCount(<b>index.parent()</b>),
# remove rows for the specified parent
<b>index.parent()</b>
)
Я предлагаю вам внимательно прочитать и изучить не только документацию о класс, который вы используете, но также и все классы, от которых он наследуется (в данном случае, QAbstractItemModel ).