crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QSqlRelationalTableModel и QTableView
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
sdg Дата 24.4.2011, 21:28
 
void MainWindow::init(){
    connection=Connection::getInstance();
    ui->tableView->viewport()->installEventFilter(this);
    model = new QSqlRelationalTableModel(0,connection->getDB());
    model->setHeaderData(0, Qt::Horizontal, tr("id"));
    model->setHeaderData(1, Qt::Horizontal, tr("name"));
    model->setHeaderData(2, Qt::Horizontal, trUtf8("assort"));
    model->setTable("table1");
    model->setRelation(2, QSqlRelation("tasrt", "id", "name_as"));
    model->select();

    ui->tableView->setModel(model);
    ui->tableView->setColumnHidden(0,true);
    ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
    ui->tableView->setItemDelegate(QSqlRelationalDelegate(ui->tableView));
    ui->tableView->resizeColumnsToContents();
    ui->tableView->resizeRowsToContents();
    ui->tableView->show();

}

void MainWindow::saveSettings(){
QItemSelectionModel *selectionModel = ui->tableView->selectionModel();
QModelIndexList indexes = selectionModel->selectedRows();
QModelIndex index;
foreach (index, indexes) {
  QSqlRecord record = model->record(index.row());
  QString settings_file;
  settings_file.append(record.value("name").toString()).append("\n");
  settings_file.append(record.value("name_as").toString()).append("\n");


qDebug()<<settings_file;
}

}


удалось получить индекс из связной таблицы, как получить значение по этому индексу?
sdg Дата 24.4.2011, 14:54
  Есть база данных на несколько таблиц.
С ними я работаю через QTableView, через модель QSqlRelationalTableModel. В качестве ItemDelegate я использую QSqlRelationDelegate. Благодаря этому получаю комбобокс прямо в таблице на форме, в котором я могу выбирать все значения, доступные в этом поле (а они определяются из другой таблицы с помощью FOREIGN KEY автоматически этим delegate'ом).
Есть следующая проблема, при попытке получить данные выделенной строки в QTableView, я получаю все данные из ячеек, кроме тех в которых установленo setRelation ( вместо данных пустые значнения).
Как получить эти данные из связных таблиц?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 20.4.2024, 8:32