Russian Qt Forum

Qt => Базы данных => Тема начата: smartchecker от Май 18, 2012, 15:53



Название: QSqlTableModel и QTableView. Индексы. Не понимаю.
Отправлено: smartchecker от Май 18, 2012, 15:53
Как отслеживается связь между view и model?
Я выбрал в таблице (во view'хе) строку. Как получить её индекс в модели?
Код
C++ (Qt)
   authorsModel = new QSqlTableModel(this, QSqlDatabase::database(connectionName));
   authorsModel->setTable("authors");
   authorsModel->setEditStrategy(QSqlTableModel::OnManualSubmit);
   authorsIdx = authorsModel->fieldIndex("id");
   authorsModel->select();
 
   authorsModel->setHeaderData(1, Qt::Horizontal, QObject::trUtf8("ФИО"));
 
   ui->authorsTableView->setModel(authorsModel);
   ui->authorsTableView->setCurrentIndex(authorsModel->index(0, 0));
   ui->authorsTableView->setColumnHidden(0, true);
 


Название: Re: QSqlTableModel и QTableView. Индексы. Не понимаю.
Отправлено: smartchecker от Май 18, 2012, 17:08
Вроде разобрался.
Код
C++ (Qt)
QModelIndex recIdx = ui->authorsTableView->currentIndex();
 
qDebug() << authorsModel->record(recIdx.row()).value("fname").toString();
 
Но возникает другой вопрос. Как лучше организовать некое извращение.
Есть вот эта связка модель-вьюха. Из неё надо выбрать ряд записей и заполнить ими модель в родительском диалоге.
Я себе это вижу так:
За один раз выбирается одна запись и её id передаётся в родительский диалог, где эта id добавляется к фильтру модели.


Название: Re: QSqlTableModel и QTableView. Индексы. Не понимаю.
Отправлено: Авварон от Май 18, 2012, 17:09
см QDataWidgetMapper


Название: Re: QSqlTableModel и QTableView. Индексы. Не понимаю.
Отправлено: smartchecker от Май 18, 2012, 17:17
А чем он здесь поможет?