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