Блокировка ориентации экрана QML
Мне нужно заблокировать экран для определенной ориентации для android-приложения, которое я делаю.
есть ли способ сделать это в QML? Гугл не дал мне никаких ответов.
Я использую Qt 5.2.
2 ответов
Вы можете в основном использовать Screen.orientation
свойство только для чтения. Подробнее см. В следующем примере:
http://qt-project.org/doc/qt-5/qtquick-window-screeninfo-qml.html
правильный способ на сегодняшний день-использовать файл манифеста Android для этого, как это сделано разработчиком Qt Android в Digia для его QtHangMan игра что:
<activity android:screenOrientation="portrait" ...
способ сделать это-
- создайте каталог вне источника-Давайте назовем его"шаблоны" (может быть что угодно)
- скопируйте AndroidManifest.xml в "шаблоны" от -
<path to qt installation>/android_armv7/src/android/templates/AndroidManifest.xml
- отредактируйте скопированный AndroidManifext.xml с вашим любимым редактором и изменить ориентацию с"нет данных "to"sensorLandscape" (или что-нибудь еще вы предпочитаете) и сохранить файл.
-
в файле qmake (*.pro) вашего проекта добавьте следующую строку -
ANDROID_PACKAGE_SOURCE_DIR = <path to your templates directory>
#в случае, если вы добавили каталог один над исходным каталогом,путь к папке "шаблоны"= "../шаблоны" сборка и запуск. Теперь вы должны увидеть, что ориентация фиксируется на все, что вы указали в пользовательском AndroidManifest.xml-файл
чтобы понять, что на самом деле происходит-вот то в Qt ссылка, ищите ANDROID_PACKAGE_SOURCE_DIR
в случае, если ссылка не работает в будущем, вот соответствующие биты -
" ANDROID_PACKAGE_SOURCE_DIR: эта переменная может использоваться для указания каталог, в который можно вносить дополнения и изменения по умолчанию Шаблон пакета для Android. Инструмент androiddeployqt будет копировать шаблон приложения из Qt в каталог сборки, а затем будет копировать содержимое ANDROID_PACKAGE_SOURCE_DIR поверх это, перезапись всех существующих файлов. Обновление части исходные файлы изменяются автоматически, чтобы отразить другие затем Параметры запускаются в результирующем объединенном пакете. Если ты ... например, хотите сделать оригинальный AndroidManifest.XML для приложение, затем поместить непосредственно в папку, указанную в эта переменная. Вы также можете добавить пользовательские файлы Java в ANDROID_PACKAGE_SOURCE_DIR / src."
QtCreator-4.2.1, Qt-5.8