Мои комментарии были слишком длинными, поэтому я решил начать ответ с информации сейчас.
QAbstractItemModel — это базовый класс, который нужен, когда вам нужен индивидуальный способ моделирования ваших данных, который не соответствует ни одному из существующих, например, где взять данные и как представить их в виде элементов. Он не готов к использованию «из коробки», так как требует реализации ряда методов. Вам, вероятно, не следует начинать с этого класса, если у вас нет веских причин для этого, так как для его запуска и работы требуется гораздо больше работы.
Для простого перетаскивания и использования основных элементов QStandardItemModel должен быть готов к использованию. Вы просто создаете QStandardItems и заполняете модель. Для перетаскивания вы должны создать подкласс модели и просто реализовать соответствующие методы drag*Event и drop*Event в соответствии с вашими потребностями.
Использование QStandardItemModel + QTreeView позволяет вам иметь несколько представлений, использующих одну и ту же модель и одновременно визуализирующих ее по-разному. Но учитывая, что вы сказали, что хотите сохранить два разных набора независимых данных, и что вы новичок в Qt, я настоятельно рекомендую вам просто использовать два QTreeWidget. QTreeWidget — это комплексный пакет представления и модели. Это будет намного проще для вас использовать сейчас.
Используя QTreeWidget, вы создадите их подклассы и реализуете необходимые события перетаскивания точно так же, как и для QTreeView, но вам больше не нужно беспокоиться о моделях по отдельности.
Вот ссылка на сообщение о перетаскивании с помощью QTreeWidget: http://www.qtcentre.org/threads/5910-QTreeWidget-Drag-and-drop
В них упоминаются рекомендуемые методы для реализации, а также то, что вы должны делать с подклассом QTreeWidgetItem для определения mimeData.
person
jdi
schedule
23.04.2012