Hello again, I would like to select a row in the a QTableView after inserting it to database using QSqlQuery. . I can see the added row in QTableView but my problem is I cannot find QModelIndex which corresponds to the new row in the model. And i use QSortFilterProxyModel between the model and the view.
How can i find QModelIndex of the inserted row and select it in QTableView?
modelt
->setTable
("sianimtable");modelt
->setEditStrategy
(QSqlTableModel::OnRowChange);
modelt->setHeaderData(1, Qt::Horizontal, "Code");
modelt->setHeaderData(3, Qt::Horizontal, "Name);
modelt->select();
filterModel = new QSortFilterProxyModel;
filterModel->setSourceModel(modelt);
filterModel->setFilterKeyColumn(2);
QTableView* view = new QTableView;
view->setModel(filterModel);
view->resizeColumnsToContents();
view->horizontalHeader()->setStretchLastSection(true);
view->setSelectionBehavior(QAbstractItemView::SelectRows);
view->setSelectionMode(QAbstractItemView::SingleSelection);
view->setEditTriggers(QAbstractItemView::NoEditTriggers);
view->hideColumn(0);
view->hideColumn(2);
view->hideColumn(4);
view->hideColumn(5);
view->hideColumn(6);
view->setSortingEnabled(true);
view->sortByColumn(1, Qt::AscendingOrder);
view->verticalHeader()->hide();
view->setAutoScroll(true);
modelt = new QSqlTableModel(this);
modelt->setTable("sianimtable");modelt->setEditStrategy(QSqlTableModel::OnRowChange);
modelt->setHeaderData(1, Qt::Horizontal, "Code");
modelt->setHeaderData(3, Qt::Horizontal, "Name);
modelt->select();
filterModel = new QSortFilterProxyModel;
filterModel->setSourceModel(modelt);
filterModel->setFilterKeyColumn(2);
QTableView* view = new QTableView;
view->setModel(filterModel);
view->resizeColumnsToContents();
view->horizontalHeader()->setStretchLastSection(true);
view->setSelectionBehavior(QAbstractItemView::SelectRows);
view->setSelectionMode(QAbstractItemView::SingleSelection);
view->setEditTriggers(QAbstractItemView::NoEditTriggers);
view->hideColumn(0);
view->hideColumn(2);
view->hideColumn(4);
view->hideColumn(5);
view->hideColumn(6);
view->setSortingEnabled(true);
view->sortByColumn(1, Qt::AscendingOrder);
view->verticalHeader()->hide();
view->setAutoScroll(true);
To copy to clipboard, switch view to plain text mode
Inserting with:
q->prepare("INSERT INTO sianimtable (CIPHER,CIPHERKP,TITLE,MSGON,MSGOFF) VALUES(:le2,:le1,:le3,:le4,:le5);");
q->bindValue(":le1",le1->text());
q->bindValue(":le2",le2->text());
q->bindValue(":le3",le3->text());
q->bindValue(":le4",le4->text());
q->bindValue(":le5",le5->text());
if(q->exec()==false)
{
pmsg->setText("Can't connect");
pmsg->setInformativeText(q->lastError().text());
pmsg->exec();
}
delete q;
QSqlQuery *q = new QSqlQuery();
q->prepare("INSERT INTO sianimtable (CIPHER,CIPHERKP,TITLE,MSGON,MSGOFF) VALUES(:le2,:le1,:le3,:le4,:le5);");
q->bindValue(":le1",le1->text());
q->bindValue(":le2",le2->text());
q->bindValue(":le3",le3->text());
q->bindValue(":le4",le4->text());
q->bindValue(":le5",le5->text());
if(q->exec()==false)
{
QMessageBox *pmsg = new QMessageBox;
pmsg->setText("Can't connect");
pmsg->setInformativeText(q->lastError().text());
pmsg->exec();
}
delete q;
To copy to clipboard, switch view to plain text mode
Bookmarks