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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как добавить элемент в QStringListModel?  (Прочитано 5991 раз)
mugabe
Гость
« : Июнь 26, 2009, 12:52 »

Есть код:
Код
C++ (Qt)
 QListView *view;
 QStringList list;
 QStringListModel *model;
---8<---------------------------------
 
list << "line 1";
 
model = new QStringListModel();
model->setStringList(list);
view->setModel(model);
 
...
 
view->model()->stringList() << "line 2";
 
В итоге вьюха отображает только "line 1", оно и понятно - модель не узнала об изменениях в stringList.

Есть какой-то способ заставить модель обновиться?
beginInsertRows(...) тут по-моему не очень подходит. Хотя, наверное, сработает.
Записан
spectre71
Гость
« Ответ #1 : Июнь 26, 2009, 13:01 »

Хотя, наверное, сработает.
А попробовать сначала! И почитать доку. Посмотреть примеры!
Записан
Rcus
Гость
« Ответ #2 : Июнь 26, 2009, 13:04 »

У класса QAbstractItemView метод model() возвращает указатель на объект класса QAbstractItemModel, у которого нет метода stringList(), поэтому возникает вопрос. даже три: Непонимающий

Если же серьезно то метод stringList() у QStringListModel объявлен как QStringList QStringListModel::stringList () const. Ясно что операции с результатом никак не повлияют на модель.
Для изменения/вставки данных надо пользоваться интерфейсом insertRows/setData
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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