Meine zwei Datenbanken sind sehr einfach gehalten:
undmodel->setHeaderData(0, Qt::Horizontal, tr("ID"));
model->setHeaderData(1, Qt::Horizontal, tr("Vorname"));
model->setHeaderData(2, Qt::Horizontal, tr("Nachname"));
model->setHeaderData(3, Qt::Horizontal, tr("Geburtsdatum"));
model->setHeaderData(4, Qt::Horizontal, tr("Telefon"));
model->setHeaderData(5, Qt::Horizontal, tr("Handy"));
model->setHeaderData(6, Qt::Horizontal, tr("Fax"));
model->setHeaderData(7, Qt::Horizontal, tr("E-Mail"));
Jetzt möchte ich es hinbekommen das wenn ich in der ersten Tabelle eine Zelle anklicke, die ID der ZEILE genommen wird und damit die zweite Tabelle mit Leben gefüllt wird. Es ist im grunde sehr einfach was ich vor habe aber ich komme einfach nicht auf die erste ZELLE einer ZEILEvoid hauptprogramm::on_action_connect_triggered()
{
if(mSQLManager.connect()){
ui->statusBar->showMessage((QString("Datenbank-Driver:").append(mSQLManager.get_mDb().driverName().append("\nVerbingung erfolgreich aufgebaut"))));
}else{
ui->statusBar->showMessage(mSQLManager.get_mDb().lastError().driverText());
}
QSqlTableModel *model = new QSqlTableModel(ui->tableView_person);
model->setTable("person");
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->setSort(1, Qt::AscendingOrder);
model->setHeaderData(0, Qt::Horizontal, tr("ID"));
model->setHeaderData(1, Qt::Horizontal, tr("Vorname"));
model->setHeaderData(2, Qt::Horizontal, tr("Nachname"));
model->setHeaderData(3, Qt::Horizontal, tr("Geburtsdatum"));
model->setHeaderData(4, Qt::Horizontal, tr("Telefon"));
model->setHeaderData(5, Qt::Horizontal, tr("Handy"));
model->setHeaderData(6, Qt::Horizontal, tr("Fax"));
model->setHeaderData(7, Qt::Horizontal, tr("E-Mail"));
model->select();
ui->tableView_person->setModel(model);
ui->tableView_person->setSortingEnabled(true);
ui->tableView_person->setAlternatingRowColors(true);
}
void hauptprogramm::on_tableView_person_clicked(QModelIndex index){
QSqlTableModel *model = new QSqlTableModel(ui->tableView_adresse);
QSqlTableModel *model2 = new QSqlTableModel(ui->tableView_person);
model->setTable("adresse");
model->setEditStrategy(QSqlTableModel::OnFieldChange);
model->setSort(1, Qt::AscendingOrder);
model->setFilter("pfl_id=1");//hier soll mal die ID von der angeklickten ZEILE stehen
model->setHeaderData(0, Qt::Horizontal, tr("ID"));
model->setHeaderData(1, Qt::Horizontal, tr("Staße"));
model->setHeaderData(2, Qt::Horizontal, tr("Haus-Nr."));
model->setHeaderData(3, Qt::Horizontal, tr("PLZ"));
model->setHeaderData(4, Qt::Horizontal, tr("Ort"));
model->setHeaderData(5, Qt::Horizontal, tr("Land"));
model->setHeaderData(6, Qt::Horizontal, tr("Postfach"));
model->select();
ui->tableView_adresse->setModel(model);
ui->tableView_adresse->setSortingEnabled(true);
ui->tableView_adresse->setAlternatingRowColors(true);
}
model->setHeaderData(0, Qt::Horizontal, tr("ID"));
model->setHeaderData(1, Qt::Horizontal, tr("Staße"));
model->setHeaderData(2, Qt::Horizontal, tr("Haus-Nr."));
model->setHeaderData(3, Qt::Horizontal, tr("PLZ"));
model->setHeaderData(4, Qt::Horizontal, tr("Ort"));
model->setHeaderData(5, Qt::Horizontal, tr("Land"));
model->setHeaderData(6, Qt::Horizontal, tr("Postfach"));
Das Bild hilft denke ich sehr was mein Problem angeht.
mein bisheriger Quellcode:
Code: Alles auswählen