나는 작은 데이터베이스 인 "Dictionary"를 가지고 있는데, std :: vector에 모든 데이터가 들어있다. 이 데이터를 QT 애플리케이션에 표시하고 싶습니다. 그래서 나는 작은 연구를했고 ListView를 다음과 같이 사용해야 함을 발견했다.QT에서 std :: vector를 올바르게 표시하는 방법은 무엇입니까?
ui->WordList->setModel(new QStringListModel(QList<QString>::fromVector
(dict->getQVector())));
그러나 이것은 실제로 보이는 것처럼 보입니다. 벡터에 새 요소를 추가 할 때마다 ListView 모델을 업데이트해야합니다. 또한 QVector를 얻기 위해 Dictionary 클래스에 함수를 추가해야합니다.
QVector<QString> getQVector() {
QVector<QString> qv;
for (size_t i = 0; i < container.size(); i++) {
qv.push_back(QString::fromStdString((std::string)container[i]));
}
return qv;
}
...이 또한 매우 느립니다. QTL을 사용하여 Dictionary 클래스를 다시 작성해야합니까? 그렇다면 ListView (또는 다른 무엇)를 사용하여 QVector를 편리한 방식으로 표시하는 방법은 무엇입니까? 미리 감사드립니다.
http://stackoverflow.com/questions/32084336/how-to-properly-add-strings-to-qlistwidgets –
std :: vector의 데이터를 직접 반환하는 사용자 지정 QAbstractListModel 하위 클래스를 작성할 수 있습니다 –