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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: 2 вопроса по listView  (Прочитано 3124 раз)
jatsuk
Гость
« : Май 04, 2011, 09:54 »

Есть listView, заполняется так
Код:
//есть таблица st
 QSqlTableModel *nsimbol;[code]
 nsimbol=new QSqlTableModel(0,db);
  nsimbol->setEditStrategy(QSqlTableModel::OnManualSubmit);
nsimbol->setTable("st");
ui->listView->setModel(nsimbol);
nsimbol->select();

Нужно изъять даныые из строки listView, которая выбрана. Как это сделать.
Пробовал что-то типа этого, не работает.
 QString atoop=nsimbol->record(ui->listView->currentIndex().row()).value("kl_bol").toString();

И второй вопрос. Как сделать, чтобы инфа listView сортировалась по алфавиту, когда выводится.
Делал тоже самое в tableview, а тут не знаю как делать.
ui->sim2->sortByColumn(0,Qt::AscendingOrder);[/code]
Записан
Drafter
Гость
« Ответ #1 : Май 04, 2011, 12:51 »

Цитировать
Нужно изъять данные из строки listView, которая выбрана.

Всё зависит от того, как Вы эти данные кладёте в модель. Я предпочитаю таким образом.
Код:
 QStandardItem *item = new QStandardItem("Item caption");
item->setData("string data one", Qt::UserRole + 1);
item->setData("string data two", Qt::UserRole + 2);
...
model->setItem(rowIdx, colIdx, item);

Извлекать, соответственно:
Код:
QString oneStr = listView->currentIndex.data(Qt::UserRole + 1).toString();
QString twoStr = listView->currentIndex.data(Qt::UserRole + 2).toString();

А по поводу сортировки - сортируйте модель.

« Последнее редактирование: Май 04, 2011, 13:10 от Drafter » Записан
jatsuk
Гость
« Ответ #2 : Май 04, 2011, 13:18 »

Данные Qstring

nsimbol->setTable("st");
ui->listView->setModel(nsimbol);

Как в этом случае изымать ?
Просто так привык, да и пол страницы кода не охото переписывать Подмигивающий
« Последнее редактирование: Май 04, 2011, 13:40 от jatsuk » Записан
Drafter
Гость
« Ответ #3 : Май 04, 2011, 14:58 »

попробуйте что-нибудь вроде:

ui->listView->currentIndex().data(Qt::DisplayRole).toString();

Записан
jatsuk
Гость
« Ответ #4 : Май 04, 2011, 15:08 »

Спасибо большое, так заработало  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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