Название: проблема с выделением элемента QListView Отправлено: registrationfedser87 от Сентябрь 01, 2008, 14:06 есть QTreeView и QLineEdit. Они связаны с помощью QDataWidgetMapper(в QTreeView отображается список записей модели,а в QLineEdit сответственно выбранный элемент QTreeView). Проблема в том что у меня не подсвечивается нужный элемент когда я нажимаю <Enter> после завершения редактирования значения в QLineEdit (я поставил обработчик в QLineEdit на нажатие <Enter>, хотя фокус устанавливается на нужном элементе). Если не нажимать <Enter> то элемент выделяется как надо. Вот код выделения элемента(тут происходит выделение последнего элемента):
Код: listView->selectionModel()->setCurrentIndex(model->index(model->rowCount()-1, 1), QItemSelectionModel::ClearAndSelect); Название: Re: проблема с выделением элемента QListView Отправлено: EhTemka от Сентябрь 02, 2008, 13:19 Сто-то не совсем понятно в чем проблема :), но попробуй так
Код: listView->selectionModel()->select(model->index(model->rowCount()-1, 1), QItemSelectionModel::ClearAndSelect); Название: Re: проблема с выделением элемента QListView Отправлено: registrationfedser87 от Сентябрь 03, 2008, 06:22 проблема в том что не подсвечивается элемент в QTreeView после того как я нажму <Enter> в связанном с QTreeView QLineEdit (предложенный способ не помог)
Название: Re: проблема с выделением элемента QListView Отправлено: EhTemka от Сентябрь 03, 2008, 17:56 Я так понимаю, что тебе надо после редактирования элемента выделить(перейти на) следующий(другой) элемент, правильно?
Цитировать я поставил обработчик в QLineEdit на нажатие <Enter> Я так понимаю это слот связанный с сигналом returnPressed () ? Покажи код этого обработчика полностью. Название: Re: проблема с выделением элемента QListView Отправлено: registrationfedser87 от Сентябрь 04, 2008, 06:28 да,стоит слот на сигнал returnPressed(). вот код обработчика:
Код: void lineEdit_returnPressed() Название: Re: проблема с выделением элемента QListView Отправлено: crossly от Сентябрь 04, 2008, 09:00 void QAbstractItemView::setCurrentIndex ( const QModelIndex & index ) [slot]
Название: Re: проблема с выделением элемента QListView Отправлено: registrationfedser87 от Сентябрь 04, 2008, 09:12 Так я тоже делал-в этом случае вообще даже строчку не выделяет.
Название: Re: проблема с выделением элемента QListView Отправлено: EhTemka от Сентябрь 04, 2008, 10:00 Попробуй так
Код: QModelIndex mIndex= listView->currentIndex(); Название: Re: проблема с выделением элемента QListView Отправлено: registrationfedser87 от Сентябрь 04, 2008, 10:35 Так я тоже уже пробывал-при таком подходе выделение исчезает. ДА-элемент уже выбран,я его редактирую. Нужно чтобы когда я закончу редактирование и нажму <Enter> выделенным остался только что редактируемый элемент(чтобы пользователь не "терялся" и не искал "а какой элемент он сейчас редактировал"). Просто видимо из-за того что политику модели я установил в QSqlTableModel::OnFieldChange (чтобы сразу изменения занеслись в бд) происходит сбрасывание выделенного элемента. Что странно- тот код выделения элемента что я приводил раньше работает при добавлении(я сделал чтобы выделялась только что добавленная новая запись)
Название: Re: проблема с выделением элемента QListView Отправлено: EhTemka от Сентябрь 04, 2008, 11:54 ... -по переднему колесу пинал? -пинал -а капотом хлопал? -хлопал -всё равно не заводится? -не заводится -ну тогда я незнаю... :) Название: Re: проблема с выделением элемента QListView Отправлено: registrationfedser87 от Сентябрь 04, 2008, 12:09 ;D Хоть проблема и не решена,но всё равно спасибо всем кто не остался равнодушным и не прошёл мимо
Название: Re: проблема с выделением элемента QListView Отправлено: xintrea от Сентябрь 07, 2008, 21:47 Так я тоже уже пробывал-при таком подходе выделение исчезает. ДА-элемент уже выбран,я его редактирую. Нужно чтобы когда я закончу редактирование и нажму <Enter> выделенным остался только что редактируемый элемент(чтобы пользователь не "терялся" и не искал "а какой элемент он сейчас редактировал"). Просто видимо из-за того что политику модели я установил в QSqlTableModel::OnFieldChange (чтобы сразу изменения занеслись в бд) происходит сбрасывание выделенного элемента. Что странно- тот код выделения элемента что я приводил раньше работает при добавлении(я сделал чтобы выделялась только что добавленная новая запись) Какая-то мистика. Количество строк в QListView при редактировании текущей выделеной строки не меняется. Если запоминать QModelIndex текущей выделеной строки, и после редактирования выставлять выделение на этот QModelIndex, то выделение должно выставиться именно на данную строку. В крайнем случае, можно даже запоминать вместо QModelIndex номер строки и потом выставлять выделение на строку с этим номером. Может быть автор топика имеет в виду, что выделение устанавливется правильно, но в поле QLineEdit исчезает текущая, только что отредактированная строка? Название: Re: проблема с выделением элемента QListView Отправлено: registrationfedser87 от Сентябрь 08, 2008, 06:02 нет,текущая строка остаётся в QLineEdit, но QLineEdit так сказать становится не связан с моделью (пока заново не выделишь элемент вручную мышкой), т.е. если я что то меняю в QLineEdit то эти изменения никак не заносятся в модель.
|