【发布时间】:2014-04-14 18:42:54
【问题描述】:
我正在使用 Qt/QML 编写跨平台移动应用程序。该应用程序与一个小型 sqlite 数据库一起安装,该数据库在开始时从资产复制到应用程序数据位置,并且应该由应用程序访问。为此,我有 DatabaseManager 类。它包含提供不同平台资产路径的功能:
QString DatabaseManager::assetsPath()
{
QString assetsPath;
#ifdef Q_OS_WIN
assetsPath = QDir::toNativeSeparators("assets:/../database");
#endif
#ifdef Q_OS_ANDROID
assetsPath = QDir::toNativeSeparators("assets:/database");
#endif
#ifdef Q_OS_IOS
assetsPath = QDir::toNativeSeparators("assets:/database");
#endif
#ifdef Q_OS_MAC
assetsPath = QDir::toNativeSeparators("assets:/database");
#endif
return assetsPath;
}
资产部署在 .pro 文件中,代码如下:
folder_qml.source = qml/HookahMixes
folder_qml.target = qml
folder_db.source = database
folder_db.target = .
DEPLOYMENTFOLDERS = folder_qml folder_db
问题是“assets:/”前缀在 Windows 和 Android 上运行良好,但不适用于 ios 和 Mac OS。 所以问题是:我应该使用什么路径来查找该平台上的数据库? 谢谢。
【问题讨论】: