Название: Взаимодействие пользователя с отображенными результатами запроса Отправлено: Мария от Апрель 15, 2011, 13:06 Здравствуйте, я новичок в QT. У меня такая проблема, нужно отобразить на экран результат sql запроса, пользовотель должен выбрать строку, нажать ОК и приложение переходит к следующему окну. Пока только у меня получилось отобразить результат запроса с помощью QSqlQueryModel и QTableView, но что делать дальше не знаю. Нужно :
- чтоб при клике на любое поле строки выделялась вся строка - как-то отловить выделенную сткоку, вернее значение ее первого поля. Название: Re: Взаимодействие пользователя с отображе Отправлено: pokidoff от Апрель 15, 2011, 13:14 Для выделения строками в свойствах QTableView:
selectionMode = SingleSelection; selectionBehavior = SelectRows; Для получения первой колонки модели [ID строки, я так понимаю =) ]: Код: void MainWindow::on_tableViewClick(QModelIndex index){ Название: Re: Взаимодействие пользователя с отображенными результатами запроса Отправлено: Мария от Апрель 15, 2011, 15:37 Спасибо, с selectionMode = SingleSelection и selectionBehavior = SelectRows все получилось.
По поводу колонки не очень понятно: в процедуру передается QModelIndex, а как его получить, если неизвестно, какую строку пользователь выберет. Т.е. мне нуно как-то получить QModelIndex именно выделенной пользователем строки. Название: Re: Взаимодействие пользователя с отображе Отправлено: mutineer от Апрель 15, 2011, 15:41 QTableView испускает сигнал, в котором передает индекс выбранного элемента. подключаешь этот сигнал к слоту и имеешь индекс
Название: Re: Взаимодействие пользователя с отображенными результатами запроса Отправлено: pokidoff от Апрель 15, 2011, 15:44 Приведенный выше метод - это слот.
Код
или в дизайнере пр. кл. по tableView -> перейти к слоту-> clicked(QModelIndex); Сигнал - это событие, которое таблица посылает при клике по строке. Он несет нужный индекс и ни откуда его брать не надо. Название: Re: Взаимодействие пользователя с отображенными результатами запроса Отправлено: Мария от Апрель 15, 2011, 16:21 Спасибо! Получилось! А существует такой сигнал doubleclicked?
Название: Re: Взаимодействие пользователя с отображенными результатами запроса Отправлено: mutineer от Апрель 15, 2011, 16:23 Спасибо! Получилось! А существует такой сигнал doubleclicked? Существует и в документации его можно увидеть |