gpt4 book ai didi

c++ - 如何正确子类化并插入 View QAbstractProxyModel

转载 作者:行者123 更新时间:2023-11-30 04:31:13 25 4
gpt4 key购买 nike

为了正确继承 QAbstractProxyView 并使其与 QListView 等 View 一起工作,我必须做什么。到目前为止,我已经这样做了:

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 中。

最佳答案

如果要与 QListView 一起使用,您应该使您的模型继承自 QAbstractListModel。您只需要实现三个方法:构造函数、rowCountdata。另请参阅此帖子以获取更多信息:How to create a custom model for a QListView in Qt

关于c++ - 如何正确子类化并插入 View QAbstractProxyModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8324432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com