Russian Qt Forum
Июнь 16, 2024, 00:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с QSqlRelationalTableModel через QComboBox..  (Прочитано 2301 раз)
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...? Заранее спасибо...
Записан
BaHeK
Гость
« Ответ #1 : Декабрь 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"));
Записан
Paullo
Гость
« Ответ #2 : Декабрь 21, 2010, 13:26 »

pRModel->index(mf_cmbStrana->currentIndex(),  pRModel->fieldIndex("id")).data().toString()
Не? Вроде как QComboBox в качестве своего индекса индекс модели использует.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 20.