Я настроил свою модель данных «AnnotationListModel», унаследованную от QStringListModel. Теперь я создаю три объекта QListView и AnnotationListModel в QDialog. Элемент данных в модели добавляется в поле checkboex и является исключением. Я могу установить флажок в QListView, но статус «проверено» не может быстро отобразиться. Как обеспечить быструю очистку QListView?
Спасибо.
Класс AnnotationListModel унаследовал QStringListModel
QVariant AnnotationListModel::data(const QModelIndex& index, int role) const { если (!index.isValid()) { вернуть QVariant(); } если (роль == Qt::CheckStateRole) { if (m_stringList_map[m_stringList.at(index.row())] == true) { вернуть Qt::Проверено; } еще { вернуть Qt::Unchecked; } } иначе, если (роль == Qt::DisplayRole) { return m_stringList.at(index.row()); } вернуть QStringListModel::data(индекс, роль); } bool AnnotationListModel::setData(const QModelIndex& индекс, константное значение QVariant&, роль int) { если (!index.isValid()) { вернуть ложь; } если (роль == Qt::CheckStateRole) { если (значение == Qt::Проверено) { for (int i{0}; i listView_country->setModel(m_counCodeModel); Connect(m_counCodeModel, &AnnotationListModel::sendAnnotation, this, &AnnotationDialog::sendAnnotation); перерыв; случай AnnotationType::DriSide: m_driSideModel = новая AnnotationListModel (AnnotationType::DriSide, l_annoStrList); m_uiDialog-> listView_driving-> setModel (m_driSideModel); Connect(m_driSideModel, &AnnotationListModel::sendAnnotation, this, &AnnotationDialog::sendAnnotation); перерыв; случай AnnotationType::RoadType: m_roadTypeModel = новая AnnotationListModel (AnnotationType::RoadType, l_annoStrList); m_uiDialog->listView_road->setModel(m_roadTypeModel); Connect(m_roadTypeModel, &AnnotationListModel::sendAnnotation, this, &AnnotationDialog::sendAnnotation); } Диалог. Диалог открывается через главное окно.

Мобильная версия