Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Hrundel от Сентябрь 17, 2013, 12:18



Название: РЕШЕHО Проблемы с классом TreeModel
Отправлено: Hrundel от Сентябрь 17, 2013, 12:18
Всем привет,

позаимствовал класс TreeModel из примера Simple Tree Model
немного его переписал но все декларации остались теми же
вызываю его в программе - получаю ошибку:

error: cannot declare variable 'model' to be of abstract type 'TreeModel'

Вот сам хедер:

Код:
class TreeItem;

class TreeModel : public QAbstractItemModel
{
    Q_OBJECT

    public:
        TreeModel(MainData* data, QObject *parent = 0);
            ~TreeModel();

        QVariant        data(const QModelIndex &index, int role) const;
        Qt::ItemFlags   flags(const QModelIndex &index) const;
        QVariant        headerData(int section, Qt::Orientation orientation,int role = Qt::DisplayRole) const;
        QModelIndex     index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
        QModelIndex     parent(const QModelIndex &index) const;
        int             rowCount(const QModelIndex &parent = QModelIndex()) const;

    private:
        void setupModelData(TreeItem *parent);

        TreeItem *rootItem;

        MainData* mainData;
        TreeNode* tempNode;
};

и так я его пытаюсь вызвать:

Код:
    TreeModel model(mainData);  // так же как в примере
    // правда я хотел бы лучше указатель но указатель
    // выдает ту же ошибку

    treeViewer->setModel(&model);

Будте добры, подскажите как решить


Название: Re: Проблемы с классом TreeModel
Отправлено: mutineer от Сентябрь 17, 2013, 12:20
Ты не переопределил columnCount()

При таком создании модель разрушится при выходе из функции и работать вряд ли что-то будет


Название: Re: Проблемы с классом TreeModel
Отправлено: Hrundel от Сентябрь 17, 2013, 12:30
Спасибо сразу все вылечилось   :)