Название: Как определить родительский элемент "по-нормальному&quo Отправлено: SABROG от Июль 23, 2007, 18:59 Есть у меня QTreeView, там два столбца, каждый рутовый элемент имеет несколько дочерних элементов.
В программе функционал сделан таким образом: на каком бы элементе выделение не стояло родительский (корневой) элемент должен определятся. В том числе, если выделение стоит на родительском элементе, то он должен определятся. Сейчас я это делаю так: Код:
Есть соответственно разница между выделением и текущим выбором. При запуске программы текущий выбор стоит на первом элементе, а вот выделения на нем нету. Я ввел проверку, если текущий элемент выделен, то уже идет проверка сначала как будто это ребенок. Ищем paren'ta, если parent не находится, но элемент валидный - значит это родитель. Такая вот проверка через заднее место. Можно ли как-то проще это сделать ? Название: Как определить родительский элемент "по-нормальному&quo Отправлено: Racheengel от Июль 23, 2007, 21:53 смотри наверно в сторону topLevelItems()
Название: Как определить родительский элемент "по-нормальному&quo Отправлено: SABROG от Июль 24, 2007, 15:26 Я бы посмотрел, да нет такого метода и похожих у QTreeView.
Название: Как определить родительский элемент "по-нормальному&quo Отправлено: bigirbis от Июль 25, 2007, 09:03 Вот немного более компактная запись:
Код: sTRoot tRoot = tvtModel->itemFromIndex( curr.parent().isValid() ? curr.parent() : curr )->data(Qt::UserRole).value<sTRoot>(); Единственное, до этого нужно впаять проверку на валидность индекса Название: Как определить родительский элемент "по-нормальному&quo Отправлено: SABROG от Июль 25, 2007, 12:20 Спасибо за упрощение, так получилось:
Код:
|