Название: Работа с QSqlRelationalTableModel через QComboBox.. Отправлено: BaHeK от Декабрь 17, 2010, 21:28 Здравствуйте! Возник у меня следующий вопрос... сразу на коде покажу... Есть простенькая таблица... в ней пару полей, я ее указываю в модели, и эту модель устанавливаю комбобоксу... Делаю чтобы отображался текст, вместо соответствующего индекса из таблицы...
QSqlRelationalTableModel *pRModel = new QSqlRelationalTableModel(this,QSqlDatabase::database("AdressD")); pRModel->setTable("t_strana"); pRModel->select(); mf_cmbStrana->setModel(pRModel); mf_cmbStrana->setModelColumn(pRModel->fieldIndex("data")); mf_cmbStrana->setCurrentIndex(-1); вопрос.. как мне при изменении узнать именно индекс выбранного поля...? не currentIndex() из комбобокса, а именно в модели... тоесть в таблице есть поля "id" и "data", вот id... Из QTableView аналогичный вопрос... fio = m_pSqlRelationModel->data(m_pSqlRelationModel->index(mf_tableAllWorkers->currentIndex().row(),1)).toString(); если я сделал скажем - m_pRelationalModel->setRelation(1,QSqlRelation("t_strana","kod","naim")); как мне вместо строкового значения узнать значение id...? Заранее спасибо... Название: Re: Работа с QSqlRelationalTableModel через QComboBox.. Отправлено: BaHeK от Декабрь 17, 2010, 23:51 Решил следующим образом... Если есть предложения получше, пишите..
QSqlRelationalTableModel *pTmpRModel = qobject_cast<QSqlRelationalTableModel*>(mf_cmbStrana->model()); mf_cmbStrana->setModelColumn(pTmpRModel->fieldIndex("id")); //Вот оно!!!)))) QMessageBox(this,windowTitle(),mf_cmbStrana->currentText()); mf_cmbStrana->setModelColumn(pTmpRModel->fieldIndex("data")); Название: Re: Работа с QSqlRelationalTableModel через QComboBox.. Отправлено: Paullo от Декабрь 21, 2010, 13:26 pRModel->index(mf_cmbStrana->currentIndex(), pRModel->fieldIndex("id")).data().toString()
Не? Вроде как QComboBox в качестве своего индекса индекс модели использует. |