QtQuick.LocalStorage无法与Qt Designer Studio中的qmlscene一起正常使用

时间:2018-10-27 16:56:54

标签: qt qml local-storage qtquick2 qt-designer

当我从Qt Designer Studio试用版运行Qmlscene预览时,对于使用QtQuick.LocalStorage的标准示例项目(Clock),它不起作用。日志显示错误:LocalStorage:无法创建路径C:\ Users \ leo \ AppData \ Local \ QtProject \ QtQmlViewer \ QML \ OfflineStorage \ Databases 来自LocalStorage.openDatabaseSync(...)函数。

我发现source of localstorage plugin的Qt探索来源

QString basename = args->v4engine()->qmlEngine()->offlineStorageDatabaseFilePath(dbname);
QFileInfo dbFile(basename);
if (!QDir().mkpath(dbFile.dir().absolutePath())) {
const QString message = QQmlEngine::tr("LocalStorage: can't create path %1").arg(QDir::toNativeSeparators(dbFile.dir().absolutePath()));
V4THROW_SQL2(SQLEXCEPTION_DATABASE_ERR, message);
}
QString dbid = dbFile.fileName();
bool created = false;
QString version = dbversion;
QSqlDatabase database;

因此,我认为qmlscene在qt项目的默认路径上打开/创建数据库文件存在一些问题。我无法更改默认路径,也无法设置offlineStorage(path),因为我无法访问C ++代码(其.qmlproject)。 当我运行项目(不使用菜单项“ QML Preview”)或使用C ++ qmlengine loader进行构建时,它在本地存储下正常工作,但是当我尝试通过Qt Design Studio中的QML场景工具进行预览时,显示错误。

有人认为如何在QMLscene工具中修复它或使用本地存储的其他方式吗?

2 个答案:

答案 0 :(得分:0)

问题是错误,尚无定论。我发现了通过写包装器在Singleton qml文件中实例化的Qt.lab.settings存储本地数据的新方法。

答案 1 :(得分:0)

为什么不仅仅创建错误报告?