QListView медленно очищается, когда в QDialog есть три QListViewC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 QListView медленно очищается, когда в QDialog есть три QListView

Сообщение Anonymous »


Я настроил свою модель данных «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); } Диалог. Диалог открывается через главное окно.
Изображение

Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»