c++ - 如何在 Qt 中创建和加载 SQLite?

标签 c++ database qt

我有一个包含数据的表 (QTableWidget)。我如何创建数据库 SQLite 并保存我的数据。那我下次还需要重新载入数据吗? 感谢提前!

enter image description here

最佳答案

/*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();
}

关于c++ - 如何在 Qt 中创建和加载 SQLite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20459540/

相关文章:

c++ - 如何安装 Audiere?

python - 从 python 调用 C++ 函数并获取返回值

c# - 维护网站的在线 (Azure) 和离线版本

objective-c - 如何在sqlite3中插入数据库?显示错误

c++ - 调用开始时 QPainter 失败

c++ - 如何处理const对象中非const引用成员的初始化?

C++指针的合适对齐方式

sql - 在某种 SQL 中,物理地址表最灵活的设计是什么?

linux - 进程结束后 QSerialPort 对 `/dev/ttyS*` 的影响?

c++ - 智能指针构造函数错误