crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> как забрать QString c QListView
as270
  опции профиля:
сообщение 20.1.2010, 13:20
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 27.12.2009
Пользователь №: 1338

Спасибо сказали: 0 раз(а)




Репутация:   0  


Понимаю что вопрос глупый и надо до конца читать и разбираться с основами
но все же

заполнили 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
  опции профиля:
сообщение 20.1.2010, 13:32
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(as270 @ 20.1.2010, 16:20) *
заполнили listView
представление не заполняют, заполняют модель, а представление отображает её содержимое. Отсюда вывод - брать нужно из модели.
Цитата(as270 @ 20.1.2010, 16:20) *
теперь пользователь выбрал что-то в listView,
Если так то смотри модель выделения (Использование модели выбора)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MaratQt
  опции профиля:
сообщение 20.1.2010, 20:12
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 20.1.2010
Пользователь №: 1389

Спасибо сказали: 1 раз(а)




Репутация:   0  


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
  опции профиля:
сообщение 8.2.2010, 3:41
Сообщение #4


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 27.12.2009
Пользователь №: 1338

Спасибо сказали: 0 раз(а)




Репутация:   0  


позвольте еще вопрос
как в listView выбрать например первую позицию ?
видимо с помощью setPositionForIndex ...
но как правильно записать всю голову сломал, помогите убогому пожалуйста
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 8.2.2010, 13:09
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


as270, смотри слот у базового класса:
void QAbstractItemView::setCurrentIndex ( const QModelIndex & index ) [slot]
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
as270
  опции профиля:
сообщение 14.2.2010, 14:31
Сообщение #6


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 27.12.2009
Пользователь №: 1338

Спасибо сказали: 0 раз(а)




Репутация:   0  


сделал так, работает.
QModelIndex indexA = model->index(0, 0, QModelIndex());
ui->listView_3->setCurrentIndex(indexA);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
as270
  опции профиля:
сообщение 4.3.2010, 10:07
Сообщение #7


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 27.12.2009
Пользователь №: 1338

Спасибо сказали: 0 раз(а)




Репутация:   0  


И еще вопросик
как посмотреть активен ли вижет, скрыт ли вижет?

каюсь за вопрос посмотрел внимательнее нашел
this->isHidden()      this->isActiveWindow()
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 15:00