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的主要内容,如果未能解决你的问题,请参考以下文章

如何在VS2015中使用QT

在 Visual Studio 中使用 Qt 远程对象(带有 qt 插件)

在 Qt4 中使用最新的 Qt5 串口库

获取 Qt 小部件以更新使用 Qt Designer 制作的 Qt 表单中的鼠标事件

Qt的安装和使用中的常见问题(简略版)

如何在 Qt5 中使用 OpenCV