2017-09-22 5 views
1

QML이 아닌 C++에서 여러 가지 대답을 찾았습니다.QStringListModel (qml의)에서 행 가져 오기

QStringListModel에서 특정 (색인에 기초한) 행을 얻는 것이 어떻게 가능합니까? 다른 모델에서 작동하는 표현식을 시도했지만 QStringListModel에서는 작동하지 않았습니다. 또한 사용하려고 시도했습니다.

var dataRow = myModel.data(rowNumber) 

그러나 "undefined"가 반환되었습니다.

답변

1

myModel.data으로 전화하시는 경우 QVariant QAbstractItemModel::data(const QModelIndex &index, int role = Qt::DisplayRole)으로 전화하십시오. 이 메서드는 QModelIndex 및 역할에 대해 선택적 int를 사용합니다.
표시 역할은 QStringListModel을 쿼리 할 때 원하는 역할이므로 역할 매개 변수를 지정할 필요가 없습니다.
그러나 인덱스 매개 변수를 유효한 QModelIndex과 함께 지정해야합니다. 당신은 것 할 귀하의 경우 그래서 QModelIndex QAbstractItemModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const

올바른 방법으로 모델에서 하나를 얻을 수 있습니다
var dataRow = myModel.data(myModel.index(rowNumber, 0));

모두 Q_INVOKABLE이기 때문에 당신은 QML에서 dataindex를 호출 할 수 있습니다.