QAbstractProxyView를 올바르게 서브 클래스 화하고 QListView와 같은 뷰에서 작동하게하려면 어떻게해야합니까? 이 클래스는 별도의 cpp
파일에 구현되어올바르게 서브 클래 싱하여 뷰로 연결하는 방법 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 : 지금까지 내가 이런 짓을했습니다. 안타깝게도 내 Ui
클래스에서 수행 :
Proxy* p = new Proxy;
p->setSourceModel(model_);//model is of class Model
listView->setModel(p);
이 작동하지 않습니다. 모델의 데이터는 listView
에 표시되지 않습니다.
당신은 무엇을 시도 했습니까? 'data' 나'index'와 같은 함수가 호출되고 있는지 확인하기 위해'qDebug' 문을 써 놓았습니까? –
@Laurent 예, qDebug 문을 넣었고 프록시의 메서드가 호출되지 않았습니다. 무슨 일이야? – user336359