我尝试在我的Qt程序中包含文件(对于symbian)并通过模拟器运行它。没有导出文件。我在QMake文件中使用的代码是:
symbian {
TARGET.UID3 = 0xe22a34fe
# TARGET.CAPABILITY +=
TARGET.EPOCSTACKSIZE = 0x14000
TARGET.EPOCHEAPSIZE = 0x020000 0x800000
addFiles.sources = 01.jpg 02.jpg 03.jpg
addFiles.path = .
DEPLOYMENT += addFiles
}
OTHER_FILES += \
03.jpg \
02.jpg \
01.jpg
因此,对QDir :: entryInfoList()的调用将不会显示任何文件:
QDir dir = QDir::current();
dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
QFileInfoList list = dir.entryInfoList();
// list is empty.
我错过了.pro文件中的内容吗?
答案 0 :(得分:2)
部署这些文件时,您希望将它们放在哪里?
addFiles.path = .
对我来说是不确定的 - 部署文件时不是'当前'目录。
提供您知道存在的路径。我当然使用app私人目录:
addFiles.path = \private\e22a34fe
...然后您可以使用
获取文件的目录QApplication::applicationDirPath()
如果您在模拟器上运行,还要检查文件是否已部署。如果您使用的是“真正的”Symbian模拟器(而不是相当可怕的QT版本),您将在epoc32 \ winscw下找到文件系统
答案 1 :(得分:2)
在Symbian OS上,所有exe和dll文件都保存在/ sys / bin目录中,每个应用程序将其数据保存在/ private / APPUID目录中(其中APPUID是应用程序UID3)。将文件部署到“。”将文件部署到应用程序的私人目录(在你的情况下,它将是KevinD提到的/ private / e22a34fe,因为你的.pro文件中有“TARGET.UID3 = 0xe22a34fe”)。
要找出文件在设备上的部署位置,请检查qmake生成的appname_template.pkg。它的语法非常简单(如果遇到任何问题,你可以read the documentation)。
我不确定Symbian上的QDir :: current()返回了哪个目录,但是文档指出QCoreApplication :: applicationDirPath()应该返回应用程序私有目录的路径。
答案 2 :(得分:0)
如果您打算仅使用这些文件,那么您可以尝试使用Qt资源文件。
添加新资源文件文件 - >新文件 - >文件和类 - > Qt-> Qt资源文件。然后添加你需要的必要文件。所有图像都将转换为等效的unicode文本或其他内容。 Deploying files with Qt application