首先抱歉这个非常基本的问题(我假设!)
我计划使用QtQuick.LocalStorage为本地数据库创建,读取和写入数据。
现在我想知道:
使用using创建Sqlite数据库后,其位于何处 LocalStorage.openDatabaseSync()? (文件说我们可以利用 QQmlEngine :: offlineStoragePath()函数获取位置,但我是 不确定如何在QML中运行该功能:@)
我可以指定要创建的数据库的路径吗?/ How?
提前谢谢。
答案 0 :(得分:3)
在QML环境中无法自由访问该值,但可以从底层代码中导出该值
在C ++中的main
函数中,您可能在某处QQmlApplicationEngine
声明了类似的内容:
QQmlApplicationEngine engine;
您可以使用它来添加包含db位置的上下文属性,如下所示:
// ...
auto offlineStoragePath = QUrl::fromLocalFile(engine.offlineStoragePath());
engine.rootContext()->setContextProperty("offlineStoragePath", offlineStoragePath);
// ...
从现在开始,您可以简单地在QML环境中使用该值,将其称为offlineStoragePath
。尝试将其Label
属性设置为text
:
text: offlineStoragePath
请注意,成员offlineStoragePath
是QQmlEngine
类的一部分,QQmlApplicationEngine
派生于此类。
有关详细信息,请参阅documentation
如您所见,它还包含一个名为setOfflineStoragePath
的成员(请参阅here),该成员可用于更改存储路径。