Как заставить QFileSelector выбирать файлы на основе устройства

#qt #qml

#qt #qml

Вопрос:

Читая документацию по классу QFileSelector, я вижу:

QFileSelector удобен для выбора вариантов файлов на основе характеристик платформы или устройства

Я успешно использую связанный класс QQmlFileSelector для выбора набора файлов в зависимости от того, создаю ли я для Mac ( mac каталог).

Тем не менее, мне нужно также создать для Ubuntu Desktop и встроенного устройства, на котором также работает Ubuntu. Поэтому я не могу просто добавить еще один каталог платформы, напрямую связанный с ubuntu.

Основываясь на ссылке device characteristics в документации, я полагаю, что могу создать папку, непосредственно связанную с устройством.

У меня есть настройка комплекта для встроенного устройства и устройства, используемого комплектом, с именем Ansible.

Может ли кто-нибудь предоставить более подробную информацию о том, как я могу заставить QQmlFileSelector выбирать файлы в папке при сборке для Ansible?

Комментарии:

1. Вы можете добавлять свои собственные селекторы, используя любое имя, которое вы хотите.

2. Что именно подразумевается под «характеристиками устройства»? Какие предопределенные селекторы основаны на них?

Ответ №1:

Вы можете добавлять свои собственные селекторы, используя любое имя, которое вы хотите. Вот пример:

     QQmlFileSelector *selector = QQmlFileSelector::get(engine);
    QStringList options;

    if (usingAnsible())
    {
        options << "ansible";
    }
    else
    {
        options << "x86";
    }

    selector->setExtraSelectors(options);
 

Тогда ваши файлы будут находиться в ansible x86 каталоге или.

Комментарии:

1. Как я могу заставить Qt затем выбирать файлы в ansible? Я предполагаю, что только потому, что я сообщил системе, что селектор доступен, должно произойти что-то еще, чтобы он был выбран.

2. Нет, больше ничего не должно произойти. Любые строки, которые вы добавляете в список селекторов, — это то, что он будет искать.