Details
-
Suggestion
-
Resolution: Unresolved
-
Not Evaluated
-
None
-
6.10.0
-
None
Description
After adding resources in the qt_add_qml_module function in Qt6, the resource path is not clear and it is not possible to directly copy the resource path. It is recommended to add an interface for traversing the qrc files to facilitate debugging. Reference code is as follows:
QStringList getAllFilesRecursively(const QString& dirPath, const QStringList& nameFilters = QStringList()) { QStringList fileList; QDir dir(dirPath); if (!dir.exists()) { qWarning() << "Directory does not exist:" << dirPath; return fileList; } dir.setFilter(QDir::Files | QDir::NoDotAndDotDot); if (!nameFilters.isEmpty()) { dir.setNameFilters(nameFilters); } const auto files = dir.entryList(); for (const QString& file : files) { fileList.append(dir.absoluteFilePath(file)); } dir.setFilter(QDir::AllDirs | QDir::NoDotAndDotDot); const auto subdirs = dir.entryList(); for (const QString& subdir : subdirs) { fileList.append(getAllFilesRecursively(dir.absoluteFilePath(subdir), nameFilters)); } return fileList; } int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); const QStringList prefixes = {"qrc:/", ":/"}; for (const QString& prefix : prefixes) { qDebug().noquote() << "Files under " << prefix << ":"; foreach (const QString& file, getAllFilesRecursively(prefix)) { qDebug().noquote() << " " << file; } } ...