Russian Qt Forum
Ноябрь 24, 2024, 01:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Сносите, разрешаю] QListView - не обновляется selectionModel() после reset()  (Прочитано 2439 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Октябрь 30, 2010, 22:11 »

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


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

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

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

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

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

Код
C++ (Qt)
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(); ?
« Последнее редактирование: Октябрь 31, 2010, 18:36 от xintrea » Записан

Собираю информацию по крупицам
http://webhamster.ru
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #1 : Октябрь 31, 2010, 18:19 »

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

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

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

Собираю информацию по крупицам
http://webhamster.ru
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #2 : Октябрь 31, 2010, 18:35 »

Не, всенормально. Это я накосячил.
Записан

Собираю информацию по крупицам
http://webhamster.ru
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.14 секунд. Запросов: 22.