我一直在研究Qt Quick 2的应用程序,完全用QML和Javascript函数实现。 (除了下面详细介绍的main.cpp)
对于模型,我一直在使用LocalStorage功能。我的应用程序在我的计算机上工作正常,我将其导出到其他计算机。在其他计算机上,应用程序启动,但没有任何数据库功能正在运行。
然后我发现localStorage的默认路径是User\AppData\Local\MyAppName\QML\OfflineStorage\Databases
可以使用setOfflineStoragePath();
Main.cpp的:
int main(int argc, char *argv[]) {
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
engine.setOfflineStoragePath(QString("./"));
return app.exec();
}
此外,这在我的计算机上工作正常,但在其他计算机上不会产生任何结果。 (数据库文件夹是在指定的路径创建的,其中包含.sqlite和.ini文件)
我所看到的是,在其他计算机上,似乎只创建了.ini,而不是.sqlite
我会想到我的代码中出现错误,但每次我直接从Qt创建者编译项目(无论是计算机)时它都运行良好。
谢谢
PS:我在编译器菜单中使用调试conf(而不是发行版)(左下)
答案 0 :(得分:2)
在使用sqlite部署qt应用程序时,必须在app目录和Qt5Sql.dll
中部署qsqlite.dll
(这可以在插件目录中找到。例如:Qt5.3.1 \ 5.3 \ mingw482_32 \ plugins \ sqldrivers)在<app directory>/sqldrivers
。这可能是解决您问题的方法。从这个问题我不确定你是否已经这样做了。