Доброго времени суток, Форумчане. Помогите пожалуйста новичку в Qt.
Появилась проблема с Drag and Drop в
QTreeView.
У меня есть модель
QStandardItemModelВ модель добавляются элементы являющиеся наследниками
QStandardItem.
примерно такой класс:
C++ (Qt)
class TreeItem : public QObject, public QStandardItem
{
Q_OBJECT
public:
explicit TreeItem(QObject* parent = 0);
enum {Section, Text, Test, Answer, Word}; // перечисленеи типов узлов дерева
int getType() const;
bool isAllowedChildren(); // могут ли быть потомки
virtual QWidget* getOptionsWidget() const;
virtual void extendChanhed();
protected:
int typeOfItem;
QWidget *optionsWidget;
};
так вот когда происходит Drag and Drop, я не могу преобразовать перенесенный элемент к моему классу
C++ (Qt)
TreeItem *forWidget = dynamic_cast<TreeItem*>(model->itemFromIndex(index));
if(forWidget != NULL)
{
emit signalSendWidget(forWidget->getOptionsWidget());
}
Здесь всегда dynamic_cast возвращает NULL.
Подскажите, как исправить? Придется наследовать
QTreeView переопределять Event`Ы Drag and Drop?
Не хочется мне жизнь усложнять, надеюсь есть более простое решение.