2013-03-15 3 views
0

식별자와 해당 객체가있는 QMap이 있습니다. QAbstractTableModel :: data()를 서브 클래 싱 할 때 각각 행과 열이있는 QModelIndex를 얻습니다. 각 행은 하나의 객체를 나타내야합니다 (QAbstractTableModel :: rowCount()는 myMap-> size()입니다). 제 (정렬되지 않은) 맵의 식별자에 의해-통과하기 때문에QAbstractTableModel :: data()에서 QMap에 올바르게 액세스하는 방법

, 그것은

myMap->values().at(index.row()) 

를 통해 현재 개체를 얻을 합법적인가이 의미 (삽입 정렬)을 했습니까? 나는 QAbstractTableModel :: setData()를 의미한다. 나는 동일한 맵 식별자를 by-passing해야한다. 감사.

답변

-1

QMap::values은 모든 값을 키의 오름차순으로 반환하므로 코드가 작동 할 수 있습니다. 그럼에도 불구하고, 나는 다음과 같은 것을 사용하십시오 :

myMap[this->index(index.row(), 0).data().toString()] 

당신이 QAbstractTableModel에서 호출하고 키를 0 번째 컬럼에 한한다.

0

"식별자"라고 말하면 을 의미하고 "해당 객체"는 값이이라고 가정합니다. QMap은 by-definition으로 키순으로 정렬됩니다.

QMap 키 - 값 기능을 사용하지 않으려면 QList 컨테이너에 값을 저장하고 제안 된대로 행 인덱스를 기반으로 값을 액세스하는 것이 좋습니다.