Как правильно создать подкласс и подключиться к представлению QAbstractProxyModel - PullRequest
0 голосов
/ 30 ноября 2011

Что мне нужно сделать, чтобы правильно создать подкласс QAbstractProxyView и заставить его работать с представлением, таким как QListView.До сих пор я делал это:

class Proxy : public QAbstractProxyModel
{
    Q_OBJECT
public:
    explicit Proxy(QAbstractItemModel* source_model = 0, QObject *parent = 0);
    QModelIndex mapToSource(const QModelIndex & proxyIndex) const;
    QModelIndex mapFromSource(const QModelIndex & sourceIndex) const;
    virtual QModelIndex index(int row, int column,
                              const QModelIndex &parent = QModelIndex()) const;
     virtual QModelIndex parent(const QModelIndex &child) const;
    virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
    virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
    virtual QVariant data(const QModelIndex&, int = Qt::DisplayRole) const;

signals:

public slots:

};

Каждая функция в этом классе реализована в отдельном файле cpp.К сожалению, занятия в моем Ui классе:

Proxy* p = new Proxy;
p->setSourceModel(model_);//model is of class Model
listView->setModel(p);

не работают;Данные из модели не отображаются в listView.

1 Ответ

2 голосов
/ 30 ноября 2011

Если он предназначен для работы с QListView, вы должны сделать так, чтобы ваша модель наследовала от QAbstractListModel. Вам нужно только реализовать три метода: конструктор, rowCount и data. Также смотрите этот пост для получения дополнительной информации: Как создать собственную модель для QListView в Qt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...