контейнер для указателей, Q |
Здравствуйте, гость ( Вход | Регистрация )
контейнер для указателей, Q |
void* |
1.8.2008, 21:06
Сообщение
#1
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
есть QList<QTreeWidgetItem*>, получаемый с помощью QTreeWidget::selectedItems(). Нужно брать первый элемент контейнера(в нем больше быть и не может) и для работы с ним преобразовать этот элемент в мой тип(TreeItem*, класс унаследованный от QTreeWidgetItem). Вот проблемный участок кода:
но компилятор ругается:
как с этим бороться? или может для указателей нужно использовать какие-то другие контейнеры, специализированные? |
|
|
Tonal |
2.8.2008, 8:54
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
но компилятор ругается:
как с этим бороться? Контейнер здесь не причём. Это ошибка из qobject_cast. Для его правильной работы нужна некоторая метоинформация, которой для твоего класса TreeItem он не имет. Чтобы исправить, нужно в объявление TreeItem поместить макрос Q_OBJECT. Есть второй путь - использовать стандартный dynamic_cast и не мучатся. P.S. qobject_cast быс сделан чтобы заменить dynamic_cast который криво работает на некоторых старых компиляторах С++ которые приходится поддерживать тролям. На современных компиляторах смысла в нём нет. |
|
|
Текстовая версия | Сейчас: 22.11.2024, 23:13 |