2013-03-08 2 views
2

Я читаю через следующую документацию, чтобы увеличить мое понимание представления модели программирования:Qt Модель Просмотр Программирование: Создание индексов

http://qt-project.org/doc/qt-4.8/model-view-programming.html 

Хотя его красиво написано, у меня есть вопрос о создании индексов. Насколько я понимаю для расчета и индекса элемента, нам нужен индекс его родительского элемента. Для вычисления индекса родительского элемента нам нужен индекс дочернего элемента. Так что это круговая зависимость. Как вы его нарушаете?

Если вы идете через следующий раздел:

Строки и столбцы

Диаграмма показывает представление основной табличной модели, в которой каждый элемент определяется парой номеров строк и столбцов. Мы получаем индекс модели , который ссылается на элемент данных, передавая соответствующую строку и номера столбцов модели.

QModelIndex indexA = model->index(0, 0, QModelIndex()); 
QModelIndex indexB = model->index(1, 1, QModelIndex()); 
QModelIndex indexC = model->index(2, 1, QModelIndex()); 

элементов верхнего уровня в модели всегда указав QModelIndex() в качестве родительского элемента. Это обсуждается в следующем разделе .

Я не понимаю, как Qt знает, для вычисления индекса A, родительским индексом должен быть QModelIndex() (т. Е. Индекс элемента верхнего уровня).

+0

«Как Qt знает, чтобы вычислить индекс A, родительский индекс должен быть QModelIndex()« Это так. – cmannett85

ответ

0

Насколько я понимаю, для расчета и индекса элемента нам нужен индекс его родительского элемента.

Да, если только это не изделие верхнего уровня.

Для расчета индекса родительского элемента нужен индекс дочернего элемента.

№ Индекс не может иметь более одного родителя, поэтому просто позвоните QModelIndex::parent() const.

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