Название: Drag and Drop для наследников QStandartItem Отправлено: AShaggy от Апрель 22, 2013, 18:49 Доброго времени суток, Форумчане. Помогите пожалуйста новичку в Qt.
Появилась проблема с Drag and Drop в QTreeView. У меня есть модель QStandardItemModel В модель добавляются элементы являющиеся наследниками QStandardItem. примерно такой класс: Код
так вот когда происходит Drag and Drop, я не могу преобразовать перенесенный элемент к моему классу Код Здесь всегда dynamic_cast возвращает NULL. Подскажите, как исправить? Придется наследовать QTreeView переопределять Event`Ы Drag and Drop? Не хочется мне жизнь усложнять, надеюсь есть более простое решение. Название: Re: Drag and Drop для наследников QStandartItem Отправлено: AShaggy от Апрель 25, 2013, 17:04 решил проблему ОЧЕНЬ сложным путем:
итак в нашем классе надо переопределить метод virtual QStandardItem *clone() const я сделал так Код
Теперь нам нужно создать класс специфичной модели QextDragDropModel наследника QStandartItemModel - Код взят отсюда (http://stackoverflow.com/questions/7088278/qstandarditemclone-not-being-called-for-drag-and-drop) При копирование у нас соответственно отпадают все подключения сигналов слотов + я думаю, у меня убегает куча памяти (или нет?) Оно конечно работает, но мне не понятно что именно происходит в коде класса QextDragDropModel, приведенного по ссылке. Может кто разъяснит? Название: Re: Drag and Drop для наследников QStandartItem Отправлено: kambala от Апрель 25, 2013, 17:43 в каком методе ты так пытаешься получить доступ к айтему? qobject_cast пробовал? какой там реально класс возвращается — QStandardItem?
Название: Re: Drag and Drop для наследников QStandartItem Отправлено: Bepec от Апрель 25, 2013, 17:47 Ыыы.. наскок я помню, там копируется не айтем, а список атрибутов его. И на новом месте создаётся не ваш объект, а создаётся новый standartItem и его полям делается setData по шаблону.
|