Название: Как узнать значение поля QSqlTableModel зная индекс QTableView Отправлено: vincent от Декабрь 04, 2009, 12:56 Помогите разобраться, пожалуйста, с ситуацией.
На форме есть объект QTableView, в констукторе формы происходит создание и инициализация объекта QSqlTableModel и модель указывается объекту QTableView - все работает нормально. Сейчас необходимо по двойному щелчку мыши по какой-либо строке таблицы (QTableView), например, вывести в окно отладки значение первого поля этой строки - как это реализовать? Когда работа идет только с моделью QSqlTableModel - тут все понятно - используется model_name.record(id_record).value(name_value), а как быть в данной ситуации? И попутно еще вопрос - сами данные хранятся только в объекте QSqlTableModel или их можно еще получать и из объекта QTableView? p/s: если вопрос слишком уж ламерский, не обессудьте :), дайте ссылочку тогда где можно почерпнуть информацию на эту тему. Название: Re: Как узнать значение поля QSqlTableModel зная индекс QTableView Отправлено: GNU Dimarik от Декабрь 04, 2009, 14:36 Если я все правильно понял,то когда происходит двойной клик на индексе модели ты хочешь получить доступ к этому индексу.
Ну есть как минимум 2 возможности 1) обработать сигнал void QAbstractItemView::doubleClicked(const QModelIndex & index) 2) Написать подкласс QTableView и переопределить там virtual void QTableView::mouseDoubleClickEvent ( QMouseEvent * event ) что бы получить кликнутый индекс используй QModelIndex QAbstractItemView::indexAt(const QPoint& point) Название: Re: Как узнать значение поля QSqlTableModel зная индекс QTableView Отправлено: vincent от Декабрь 04, 2009, 14:52 Если я все правильно понял.... Не совсем - индексы у меня уже есть :) Мне нужно было получить значение конретного поля запроса (столбца таблицы), сейчас сделал так: Код получается что значение получаю из QTableView, а думал что нужно получать из QSqlTableModel (немного непривычно просто все организованно в QT :) поэтому и возникают такие вопросы) Название: Re: Как узнать значение поля QSqlTableModel зная индекс QTableView Отправлено: MoPDoBoPoT от Декабрь 04, 2009, 16:08 По сути, GNU Dimarik дал тебе правильный ответ, только не разжованный :)
получается что значение получаю из QTableView, а думал что нужно получать из QSqlTableModel Так ты и получаешь значения из QSqlTableModel, ведь в модели хранятся данные, а представление лишь отображает их. Просто представление предоставляет интерфейс доступа к ее модели - tableView->model(), которым ты воспользовался. Можешь убедится в этом, заменив tableView->model()->... на sqlModel->...Название: Re: Как узнать значение поля QSqlTableModel зная индекс QTableView Отправлено: vincent от Декабрь 04, 2009, 20:28 MoPDoBoPoT
Спасибо за разъяснения. :) |