QT中使用QtCipherSqlitePlugin
Posted ParamousGIS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT中使用QtCipherSqlitePlugin相关的知识,希望对你有一定的参考价值。
1.下载QtCipherSqlitePlugin
https://github.com/devbean/QtCipherSqlitePlugin
2.利用QT Creator编译QtCipherSqlitePlugin
应用QT Creator打开QtCipherSqlitePlugin.pro,然后利用QT Creator编译QtCipherSqlitePlugin
3.安装QtCipherSqlitePlugin编译后的dll
将
E:\\build-QtCipherSqlitePlugin-Desktop_Qt_6_4_0_MSVC2019_64bit-Debug\\sqlitecipher\\plugins\\sqldrivers
与
E:\\build-QtCipherSqlitePlugin-Desktop_Qt_6_4_0_MSVC2019_64bit-Release\\sqlitecipher\\plugins\\sqldrivers
目录下的所有文件放入
C:\\Qt\\6.4.0\\msvc2019_64\\plugins\\sqldrivers
目录中
4.QT工程中应用
#include <QApplication> #include <QLocale> #include <QTranslator> #include <QStyleFactory> #include <QSurfaceFormat> #include <QTemporaryDir> #include <QtPlugin> #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError> //打开数据库------------------------------------------------------------------- void openDatabase() QSqlDatabase database = QSqlDatabase::addDatabase("SQLITECIPHER"); database.setDatabaseName("D:/data/test.db"); database.setPassword("test"); database.setConnectOptions("QSQLITE_CREATE_KEY"); if (!database.open()) qDebug() << "Can not open connection: " << database.lastError().driverText(); exit(-1); qDebug() << "open connection successful \\n"; database.close(); //创建数据库------------------------------------------------------------------- void createDatabase() QTemporaryDir tmpDir; QString dbname = QDir(tmpDir.path()).absoluteFilePath("test_plugin.db"); // QString dir = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation); // QString dbname = dir + "/local.db"; // qDebug() << dbname; QSqlDatabase database = QSqlDatabase::addDatabase("SQLITECIPHER", "db"); database.setDatabaseName("D:/data/test-01.db"); database.setPassword("test"); database.setConnectOptions("QSQLITE_CREATE_KEY"); if (!database.open()) qDebug() << "Can not open connection: " << database.lastError().driverText(); exit(-1); // QSqlQuery q(database); QStringList queries; queries << "create table IF NOT EXISTS foo(bar integer)" << "insert into foo values (42)"; for (const QString &qs : qAsConst(queries)) if (!q.exec(qs)) qDebug() << "Can not open connection: " << q.lastError().text(); database.close(); //读写数据库------------------------------------------------------------------- void readWithPassphrase() QSqlDatabase database = QSqlDatabase::addDatabase("SQLITECIPHER", "db"); database.setDatabaseName("D:/data/test-01.db"); database.setPassword("test"); if (!database.open()) qDebug() << "Can not open connection: " << database.lastError().driverText(); exit(-1); QSqlQuery q(database); if (!q.exec("select bar from foo")) qDebug() << "Can not open connection: " << q.lastError().text(); // if (q.next()) qDebug() << q.value(0).toInt() << "\\n"; // database.close(); //---------------------------------------------------------------- int main(int argc, char *argv[]) qDebug() << QSqlDatabase::drivers(); // openDatabase(); // // createDatabase(); // readWithPassphrase();
--------------------------
Qt的安装和使用中的常见问题(简略版)
对于喜欢研究细节的朋友,可参考Qt的安装和使用中的常见问题(详细版)。
目录
1、引入
安装和使用Qt的常见问题解答。
这个版本是简略版,适合需要马上解决问题的朋友。对于喜欢研究细节的朋友,可参考Qt的安装和使用中的常见问题(详细版)。
2、Qt简介
Qt是一款基于C++的跨平台开发框架。
注意区分概念:QtCreator是IDE,跟Qt不是同一个概念。
3、Qt版本
版本查看、切换等。
3.1 查看安装的Qt版本
如果有QtCreator,那么打开,依次点击:菜单栏 -> 工具(Tools) -> 选项(options)。弹出的对话框,左侧边栏里,选中“构建与运行(Build & Run)”,右侧查看构建套件(kit)标签里的默认Qt版本。
Qt版本是由qmake决定的。知道qmake的版本等于知道使用哪个版本的Qt。反过来,你要使用哪个版本的Qt,就去找对应的qmake。
3.2 查看当前项目使用的Qt版本
在QtCreator里打开这个项目,然后在最左侧的栏目里,切换到项目(Project):
找到Build & Run,然后就能看到这个项目正在使用的是什么套件以及什么Qt版本了。
3.3 查看当前项目使用的QtCreator版本
依次点击:QtCreator菜单 -> 帮助 -> 关于QtCreator,就可以查看了。
3.4 Linux命令行下查看和使用不同版本的Qt
使用qmake -v
来查看Qt版本。
如果安装了多个版本的Qt,用find
指令或者其他方式搜索qmake执行文件,确定其对应的版本。
命令行中设置默认qmake:需要修改/usr/lib/x86_64-linux-gnu/qt-default/qtchooser目录下的default.conf,其中你的路径里的“x86_64-linux-gnu”可能跟我的不同。default.conf是个连接文件,重新连接到对应版本的文件即可。
以上是关于QT中使用QtCipherSqlitePlugin的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 中使用 Qt 远程对象(带有 qt 插件)