Russian Qt Forum
Март 29, 2024, 00:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] QTreeWidget get indexes  (Прочитано 3214 раз)
OKTA
Гость
« : Август 01, 2014, 11:03 »

Товарищи, пробую в простейшем случае, стараясь избежать лишней писанины со своими делегатами и айтемами, засунуть в QTreeWidgetItem QPushButton. Засовывается успешно, все нормально.
Нажатие на клавиши отлавливаю через QSignalMapper, но после нажатия в слоте мне нужно четко знать, в каком именно айтеме произошло нажатие, т.е. нужен какой-то уникальный идентификатор. Вот вопрос в этом и состоит - как получить уникальный идентификатор айтема? Те же index, как я понял, для детей идут с нуля от своего родителя и уже не являются уникальными на всю модель. А засунуть свой идентфикатор в какое-нибудь поле и спрятать его, чтобы потом делать findItems не получается  Непонимающий Может я не там ищу?
« Последнее редактирование: Август 01, 2014, 11:23 от OKTA » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Август 01, 2014, 11:06 »

А если хранить
QMap<QPushButton*, QTreeWidgetItem*>?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
OKTA
Гость
« Ответ #2 : Август 01, 2014, 11:14 »

Этот вариант я на крайний случай оставил  Улыбающийся Можно конечно сделать еще аналог метода findItems, который бы искал не по тексту, а по data, но хотелось бы, как уже говорил, минимум своей писанины, если есть возможность обойтись имеющимися средствами Qt.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Август 01, 2014, 11:20 »

Только если засунуть в objectName кнопки указатель на QTreeWidgetItem, но это костыльно и непонятно. ИМХО, больше простых решений я не вижу.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
OKTA
Гость
« Ответ #4 : Август 01, 2014, 11:22 »

Ну, тогда будем хранить указатели. Спасибо, Пантер!  Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 22.