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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QAbstractListModel  (Прочитано 3940 раз)
OKTA
Гость
« : Май 06, 2015, 16:33 »

Товарищи, приветствую!
Поясните, пожалуйста, механизм работы QListView при работе с моделью.

Не могу понять в чем косяк.. Если коротко, то суть в том, что добавляя несколько элементов в модель, представление может как отобразить их правильно, так может продублировать. Причем дублируются элементы только с индексом строго больше нуля. Нулевой всегда один Непонимающий Как понимаю, представление ориентируется на вызов beginIsertRows и rowsCount для отображения элементов, но или я что-то забыл или что-то не догоняю  Плачущий
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Май 06, 2015, 17:03 »

Все нормально отображается:
Код
Java
class LogModel extends QAbstractTableModel {
...
   public void add(TermState state) {
       beginInsertRows(null, States.size(), States.size());
       states.add(state);
       endInsertRows();
   }
...    
   List <TermState> states = new ArrayList <TermState> ();
}
 
Записан

OKTA
Гость
« Ответ #2 : Май 06, 2015, 17:20 »

Да так и делаю  Непонимающий
Просто не понимаю, откуда представление может взять информацию о том, что надо отобразить больше элементов, чем есть в модели, если rowsCount возвращает всегда правильное значение количества?
Записан
OKTA
Гость
« Ответ #3 : Май 06, 2015, 17:30 »

Дополнительный вопрос на мильён.. Самая правильная реализация, это когда модель и представление живут в одном потоке?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3259


Просмотр профиля
« Ответ #4 : Май 06, 2015, 17:54 »

Дополнительный вопрос на мильён.. Самая правильная реализация, это когда модель и представление живут в одном потоке?

Они не могут жить в разных потоках
Записан
OKTA
Гость
« Ответ #5 : Май 06, 2015, 18:03 »

Да, косяк был именно в этом... Мьютексы не смогли исправить ситуацию.. Плачущий
Получается, опять же и сами данные для модели логичнее держать при самой модели.

Всем большое спасибо за помощь!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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