LINUX.ORG.RU

[Qt] QListView - не обновляется состояние selectionModel() после reset() в модели данных

 


0

1

Здравствуйте!


У меня такая проблема.

Есть объект, унаследованный от QListView - recordview. И есть объект, унаследованный от QAbstractListModel - recordtablemodel. Они связаны по принципу interview.

Когда в интерфейсе программы удаляется последняя запись в списке (то есть, список становится пустым), вызывается следующий код:

void recordtablemodel::update(void)
{
 qDebug() << "recordtablemodel::update() : Reset";
 
 // Модель информирует вид о том, что данные были изменены
 // При этом перестроится весь список на экране
 reset();
}

А затем вызывается код:

 qDebug() << "Tools update";

 if(recordview->selectionModel()->hasSelection())
   qDebug() << "In table select present";
 else
   qDebug() << "In table select non present";

В логе вижу следующее:

recordtablemodel::update() : Reset
Tools update
In table select present

Вопрос. Откуда в recordview есть какой-то выбор, если в моделе нет ни одной записи, и модель вызывала метод reset(); ?


Хм, действительно бредятина.

Удаление строк в QListView переделал вообще один в один по классическому принципу interview, с beginRemoveRows()/endRemoveRows(), убрал reset().

И всеравно, после удаления последней записи, selectionModel()->hasSelection() возвращает true. Как оно может быть true, если записей не осталось - не ясно.

xintrea
() автор топика
Ответ на: комментарий от xintrea

ну хоть написал бы, в чем проблема то была

wmd
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.