Qt Quick의 ListView는 목록 보기를 빠르게 표시할 수 있는 매우 유용한 구성 요소이며 C++ 데이터 모델도 Qt 프레임워크의 중요한 부분입니다. 이 기사에서는 Q를 사용하는 방법을 소개합니다...

Qt Quick의 ListView는 목록 보기를 빠르게 표시할 수 있는 매우 유용한 구성 요소이며 C++ 데이터 모델도 Qt 프레임워크의 중요한 부분입니다. 이 기사에서는 C++ 모델 클래스를 사용하여 Qt Quick에서 ListView의 데이터 바인딩을 실현하는 방법을 소개합니다.

먼저 QAbstractListModel에서 상속해야 하는 C++에서 데이터 모델 클래스를 만들어야 합니다. 모델 클래스가 MyModel이라고 가정하고 코드는 다음과 같습니다.

class MyModel : public QAbstractListModel
{
    Q_OBJECT
public:
    explicit MyModel(QObject *parent = nullptr);
    int rowCount(const QModelIndex &parent = QModelIndex()) const override;
    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
private:
    QList<QString> m_dataList;
};

그 중 rowCount 함수는 데이터의 전체 행 수를 반환하고, data 함수는 해당 행과 열의 데이터를 반환합니다.

다음으로 QML에서 나중에 사용할 수 있도록 QML Register Type을 통해 데이터 모델 클래스를 등록해야 합니다. 아래와 같이 코드 쇼:

import QtQuick 2.15
import MyModel 1.0 // 引入 C++ 类

ListView {
    width: 200
    height: 400
    model: myModel
}

MyModel {
    id: myModel
}

위 코드에서 &#x

추천

출처blog.csdn.net/update7/article/details/130097238