Могу ли я объявить корневой элемент для QAbstractItemModel?
-
18-09-2019 - |
Вопрос
Я знаю, что есть возможность установить индекс родительской модели для представления элемента, но я бы хотел сделать это для модели.
Причина довольно проста, я хочу избавиться от этих конструкций:
# PyQt 4.5.4, but this should be similar to Qt.
def insertRows(self, row, count, parent=QModelIndex()):
if parent.isValid():
parentNode = parent.internalPointer()
else:
parentNode = self.rootNode
Решение
Если ваша модель представляет собой плоскую структуру, просто игнорируйте родительский атрибут или используйте QModelIndex() везде, где вам нужно указать parent .Если ваша модель представляет дерево, вы действительно не можете избавиться от опубликованных вами конструкций, потому что кто-то может использовать недопустимый индекс, и вы должны проверить, является ли он допустимым.
Не связан с StackOverflow