QT; Как я могу сохранить путь ресурсов к переменной во время выполнения? - PullRequest
0 голосов
/ 08 мая 2019

В моем проекте qt есть файл .qrc, поэтому мои файлы ресурсов хранятся как ": / audio / melody /...".

Мне нужно выбрать, какие файлы использовать или нет во время выполнения, поэтому мойпрограмма хранит путь к ресурсам в файле .txt.

Во время выполнения моя программа получает эти пути к строке как переменные.

Так что теперь мне нужно использовать эти переменные, чтобы поместить [setSource (variable))] методы любых других объектов Qt.Но это не может.

Я попытался преобразовать std :: string (который имеет путь к файлу) в QString и поместил его в QtObj.setSource () как QUrl (QString).

Но я обнаружил, что в QUrl (QString) нет данных (я ожидал, что в QUrl (QString) есть путь к ресурсу, например ": / audio / melody / .. blahblah".

Как преобразоватьstd :: string (который имеет путь к ресурсу) в QUrl, чтобы использовать его в качестве пути к ресурсу?

На самом деле, мне интересно, есть ли возможность использовать путь ресурса в качестве переменных.

1 Ответ

0 голосов
/ 08 мая 2019

Чтобы получить список всех ресурсов, сами файлы и URL-адрес файла во время выполнения, вы можете сделать это:

QHash<QUrl, QFile> list;
QDirIterator it(":", QDirIterator::Subdirectories);
while (it.hasNext()) {
    QFile file(it.next());
    QUrl url = QUrl::fromLocalFile(file.fileName())

    list.insert(url, file);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...