Использование темы Holo в приложении Qt для Android

У меня есть приложение для Android Qt, и я хочу, чтобы его тема была Holo (т. Е. Темный вариант, а не Holo Light). Вот сравнение темы Holo Dark (слева) и моего приложения (справа):

Введите описание изображения здесьВведите описание изображения здесь

Я использую Qt 5.2.0, и я использую Qt / C ++ (то есть не QML), но меня интересует любой способ, который работает независимо от версии Qt или QML или C ++.

Изменить: я знаю, что с помощью Ministro он будет создавать pixmaps для всех виджетов, используя «родную» тему, но можно ли сообщить Ministro, какую тему использовать?

Изменить: теперь Holo Dark теперь можно выбрать с Qt 5.4, добавив android:theme="@android:style/Theme.Holo" в <application> в AndroidManifest.xml.

Это работает с Qt 5.4, но не с Qt 5.2, с Qt 5.2, тема всегда является темой по умолчанию для телефона независимо от того, что вы указываете для android:theme в манифесте.

Итак, в AndroidManifest.xml найдите узел <application> и измените его на:

 <application android:theme="@android:style/Theme.Holo" ... 

На данный момент это не доступно для QtQuickControls, хотя оно было перенесено в Qt 5.2 для QtWidgets.

Первый находится в списке TODO BogDan для 5.3. Подробности см. В его блоге:

Qt на Android Episode 1

Здесь вы можете найти несколько скриншотов из системы моего друга.

Не родной

Введите описание изображения здесь

Родной

Введите описание изображения здесь

QtCreator

Введите описание изображения здесь

Bu с помощью Ministro ваше приложение получает зависимость от приложения Ministro. Я думаю, что это недостаток, потому что дополнительная зависимость заставит приложение проверить при запуске, если Ministro установлен на вашем устройстве да или нет. Если он не установлен, пользователь вынужден установить его через Android Play Store.

Вместо использования Ministro я бы установил пользовательскую таблицу стилей, которая имитирует голографическую тему.

QApplication::setStyleSheet(const QString & sheet)

Здесь есть репозиторий на GIT, который имитирует различные темы для Android. Не должно быть трудно адаптировать файл голограммы .css к файлу таблицы стилей Qt (.qss).

Согласно руководству Google Style , вам нужно установить его в AndroidManifest.xml:

Чтобы задать тему для всех действий вашего приложения, откройте файл AndroidManifest.xml и отредактируйте тег, чтобы включить атрибут android: theme с именем стиля. Например:

  <application android:theme="@android:style/Theme.Holo"/> 

Если вам нужна светлая тема (по умолчанию она темная), вы должны записать это вместо этого:

  <application android:theme="@android:style/Theme.Holo.Light"/>