Название: Проблема с QModelIndex Отправлено: virtual_root от Август 20, 2012, 16:53 Добрый вечер ребята. У меня следующий вопрос: Создаю дерево с любым уровнем вложенности. В каждый QStandartItem в data ложу id эелемента который отображаю. Проблема в следующем: обрабатываю событие клика по узлу дерева. Если я кликаю по верхнему уровню, то через QModelIndex могу получить QStandartItem и из него его данные. Если кликаю по внутреннему узлу, то он мне всё равно возвращает самый верхний родитель узла, а мне нужно у кликнутого узла получить id. Почему QModelIndex возвращает номера строк и столбцов(я через них получаю QStandartItem ) только верхнего уровня? Как мне добраться до внутренних узлов? Подскажите ребята!
Прилагаю код: Код
Код
Название: Re: Проблема с QModelIndex Отправлено: Странник от Август 20, 2012, 23:17 parent не передаете, следовательно и получаете элемент верхнего уровня. надо так:
Код: QStandardItem *item = _model->itemFromIndex(index); а еще корректнее будет вот так: Код: int Groups::GetGroupID(const QModelIndex &index) Название: Re: Проблема с QModelIndex Отправлено: trot от Август 21, 2012, 07:43 Это вы думаете, что получает номер строки и столбца верхнего уровня. На самом деле вы получаете то что надо. В дереве нет сквозной нумерации, каждый уровень нумеруется с нуля, а чтобы понять какой уровень вы обрабатываете, то необходимо учитывать parent, то что вы не делаете.
Название: Re: Проблема с QModelIndex Отправлено: virtual_root от Август 21, 2012, 10:22 спасибо ребята!
|