Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: как забрать QString c QListView
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Модель/Представление
as270
Понимаю что вопрос глупый и надо до конца читать и разбираться с основами
но все же

заполнили listView
QString pathDir=QString::fromUtf8("/Путь/");
QDir dir(pathDir);
listParametr = new QStringList (dir.entryList(QDir::Dirs));
listParametrModel = new QStringListModel(*listParametr);
ui->listView->setModel(listParametrModel);

теперь пользователь выбрал что-то в listView,
как получить в формате QString то что выбрал пользователь

listParametr->at(listParametrModel->rowCount(ui->listView->currentIndex())) - возвращает первую строку,а мне надо активную

прошу прощения за свою тупость и непроходимость :rolleyes:
Litkevich Yuriy
Цитата(as270 @ 20.1.2010, 16:20) *
заполнили listView
представление не заполняют, заполняют модель, а представление отображает её содержимое. Отсюда вывод - брать нужно из модели.
Цитата(as270 @ 20.1.2010, 16:20) *
теперь пользователь выбрал что-то в listView,
Если так то смотри модель выделения (Использование модели выбора)
MaratQt
QString a=ui->listView->model->index(ui->listView->currentIndex()->row(),ui->listView->currentIndex()->column())->data().toString();

Вводил вручную, могут быть мелкие опечатки

Цитата(MaratQt @ 20.1.2010, 19:47) *
QString a=ui->listView->model->index(ui->listView->currentIndex()->row(),ui->listView->currentIndex()->column())->data().toString();

Вводил вручную, могут быть мелкие опечатки

А вообще, если не издеваться, то и такое должно работать:
QString a=ui->listView->currentIndex()->data().toString();

Правда короче?
as270
позвольте еще вопрос
как в listView выбрать например первую позицию ?
видимо с помощью setPositionForIndex ...
но как правильно записать всю голову сломал, помогите убогому пожалуйста
Litkevich Yuriy
as270, смотри слот у базового класса:
void QAbstractItemView::setCurrentIndex ( const QModelIndex & index ) [slot]
as270
сделал так, работает.
QModelIndex indexA = model->index(0, 0, QModelIndex());
ui->listView_3->setCurrentIndex(indexA);
as270
И еще вопросик
как посмотреть активен ли вижет, скрыт ли вижет?

каюсь за вопрос посмотрел внимательнее нашел
this->isHidden()      this->isActiveWindow()
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.