Reputation: 1346
I have a table (QTableWidget) with data. How I can to create a database SQLite and to save my data. Then I need the next time to load the data again? Thanks advance!
Upvotes: 0
Views: 696
Reputation: 262
/*constructor ...*/
{
...
/* create TableView to hold our db */
pcbtv = new QPcbView(this);
pcbtv->setModel(tabsort);
pcbtv->setAlternatingRowColors(true);
pcbtv->setSortingEnabled(true);
pcbtv->setCornerButtonEnabled(false);
pcbtv->setSelectionMode(QAbstractItemView::SingleSelection);
pcbtv->setSelectionBehavior(QAbstractItemView::SelectRows);
pcbtv->setEditTriggers(QTableView::NoEditTriggers); /* start read-only */
pcbtv->resizeColumnsToContents();
/* Header titles must be set on the model */
pcbtv->model()->setHeaderData(PartNo_PartNo, Qt::Horizontal, "Part No");
pcbtv->model()->setHeaderData(PartNo_Name, Qt::Horizontal, "Name");
pcbtv->model()->setHeaderData(PartNo_GteNo, Qt::Horizontal, "GT-E Part No");
pcbtv->model()->setHeaderData(PartNo_GteName, Qt::Horizontal, "GT-Electronics Name");
QHeaderView* header = pcbtv->horizontalHeader();
//header->setToolTip("bliblabloo");
header->setAlternatingRowColors(true);
header->setSectionsMovable(true);
header->setStretchLastSection(true);
pcbtv->setHorizontalHeader(header);
...
}
void PcbList::loadDb(QString filepath)
{
openSqliteDb(filepath, "PARTNO");
}
void PcbList::openSqliteDb(QString dbname, QString table)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(dbname);
db.open();
qDebug() << "connected to db " << dbname;
tabmod = new QSqlTableModel(this, db);
tabmod->setTable(table);
tabmod->setSort(PartNo_GteNo, Qt::AscendingOrder);
tabmod->setEditStrategy(QSqlTableModel::OnFieldChange);
tabmod->select();
}
Upvotes: 1