记录将pc代码移植到android上,使用的是qt5.12 基本是参考的网上的,但是网上的总是不成功,只是修改了1点,其他基本相同,没有细究原因。
#ifndef DATABASECONNECTION_H
#define DATABASECONNECTION_H
#include "qsqldatabase.h"
#include <QsqlDatabase>
#include <QString>
#include <QSqlQuery>
#include <QObject>
#include <QDebug>
#include <QSqlError>
#include <QFile>
#include <QMessageBox>
static bool connectiondatabase(bool bl)
{
QFile file1("assets:/bbb/CALIB.txt");
if(file1.exists()){
file1.copy("./CALIB.txt");
QFile::setPermissions("./CALIB.txt", QFile::WriteOwner | QFile::ReadOwner);
}
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
QFile file("assets:/bbb/nuclides.db");
if(file.exists()||file.size()==0){
file.copy("./nuclides.db");
file.setPermissions(QFile::ReadUser | QFile::WriteUser);
}
db.setDatabaseName("nuclides.db");
if(!db.open())
{
return false;
qDebug("open is false");
}
else
{
if (!bl)
{
db.close();
}
qDebug("open is true");
return true;
}
}
#endif
在pro文件中加入以下代码:
android{
data.files += aaa/nuclides.db
data.files += aaa/CALIB.txt
data.path = /assets/bbb
#data.path = /assets/aaa
INSTALLS += data
}
nuclides.db为数据库文件,txt文件是我用到的画图数据
遇到的问题: 路径网上的也试过了,网上教程应该也没问题,网上教程在下边这句代码中常常写成 QSqlDatabase db = QSqlDatabase::addDatabase(“QSQLITE”,“name”);修改为 QSqlDatabase db = QSqlDatabase::addDatabase(“QSQLITE”);发现居然成功了,pc端也没有name一直没问题。记录一下。
|