为了正确地继承QAbstractProxyView类并使其与视图(如QListView)一起工作,我需要做些什么。到目前为止,我这样做:如何正确地继承子类并插入视图QAbstractProxyModel
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:
};
每functionin这个类是在单独cpp
文件中实现。不幸的是在我的Ui
类中做:
Proxy* p = new Proxy;
p->setSourceModel(model_);//model is of class Model
listView->setModel(p);
不起作用;来自模型的数据不会显示在listView
中。
你试过了什么?你是否放了一些'qDebug'语句来检查像'data'或'index'这样的函数是否被调用? –
@Laurent是的,我确实把qDebug语句和代理的这些方法不调用。这是怎么回事? – user336359