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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QAbstractItemModel -> QString  (Прочитано 3145 раз)
iukash
Гость
« : Февраль 18, 2011, 18:10 »

Я продалжаю раскуривать пример editabletreemodel, теперь я из файла считываю модель, правлю ее и хочу сохранить. Считываю актуальную модель в QAbstractItemModel а как теперь из model вытащить текст?
Цитировать
QAbstractItemModel *model = view->model();
QString str = model; //[COLOR="Red"]как?[/COLOR]
Записан
UVV
Гость
« Ответ #1 : Февраль 18, 2011, 18:52 »

QAbstractItemModel::data() ?
Записан
iukash
Гость
« Ответ #2 : Февраль 18, 2011, 21:09 »

QAbstractItemModel::data() ?
В data() надо передавать параметры, я не знаю что туда передать!
Цитировать
data( const QModelIndex & index, int role = Qt::DisplayRole )
Записан
Paullo
Гость
« Ответ #3 : Февраль 18, 2011, 21:22 »

QModelIndex нужно получить из той же модели посредством функции index(), куда передаётся соответственно строка, колонка и родительский индекс. Если родительского элемента нету, то в качестве индекса передаётся пустой QModelIndex(), который считается корневым элементом всего дерева. Ещё в функцию data() надо передать роль, это которая второй параметр. Он по умолчанию Qt::DisplayRole, так его и оставь. Если не получится - попробуй Qt::EditRole. Обычно в DisplayRole хранится текст который должен читать пользователь, а в EditRole - некие данные из которых этот текст можно получить. Чаще всего они совпадают.
Записан
iukash
Гость
« Ответ #4 : Февраль 18, 2011, 22:19 »

QModelIndex нужно получить из той же модели посредством функции index(), куда передаётся соответственно строка, колонка и родительский индекс. Если родительского элемента нету, то в качестве индекса передаётся пустой QModelIndex(), который считается корневым элементом всего дерева. Ещё в функцию data() надо передать роль, это которая второй параметр. Он по умолчанию Qt::DisplayRole, так его и оставь. Если не получится - попробуй Qt::EditRole. Обычно в DisplayRole хранится текст который должен читать пользователь, а в EditRole - некие данные из которых этот текст можно получить. Чаще всего они совпадают.

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


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