Russian Qt Forum

Qt => Model-View (MV) => Тема начата: OKTA от Август 01, 2014, 11:03



Название: [РЕШЕНО] QTreeWidget get indexes
Отправлено: OKTA от Август 01, 2014, 11:03
Товарищи, пробую в простейшем случае, стараясь избежать лишней писанины со своими делегатами и айтемами, засунуть в QTreeWidgetItem QPushButton. Засовывается успешно, все нормально.
Нажатие на клавиши отлавливаю через QSignalMapper, но после нажатия в слоте мне нужно четко знать, в каком именно айтеме произошло нажатие, т.е. нужен какой-то уникальный идентификатор. Вот вопрос в этом и состоит - как получить уникальный идентификатор айтема? Те же index, как я понял, для детей идут с нуля от своего родителя и уже не являются уникальными на всю модель. А засунуть свой идентфикатор в какое-нибудь поле и спрятать его, чтобы потом делать findItems не получается  ??? Может я не там ищу?


Название: Re: QTreeWidget get indexes
Отправлено: Пантер от Август 01, 2014, 11:06
А если хранить
QMap<QPushButton*, QTreeWidgetItem*>?


Название: Re: QTreeWidget get indexes
Отправлено: OKTA от Август 01, 2014, 11:14
Этот вариант я на крайний случай оставил  :) Можно конечно сделать еще аналог метода findItems, который бы искал не по тексту, а по data, но хотелось бы, как уже говорил, минимум своей писанины, если есть возможность обойтись имеющимися средствами Qt.


Название: Re: QTreeWidget get indexes
Отправлено: Пантер от Август 01, 2014, 11:20
Только если засунуть в objectName кнопки указатель на QTreeWidgetItem, но это костыльно и непонятно. ИМХО, больше простых решений я не вижу.


Название: Re: QTreeWidget get indexes
Отправлено: OKTA от Август 01, 2014, 11:22
Ну, тогда будем хранить указатели. Спасибо, Пантер!  ;)