Блокировка ориентации экрана QML

Мне нужно заблокировать экран в определенной ориентации для приложения для Android, которое я делаю. есть ли способ сделать это в QML? Гугл не дал мне ответов.
Я использую Qt 5.2.


person Abdullah Al-Hatem    schedule 25.12.2013    source источник


Ответы (2)


Вы можете использовать свойство Screen.orientation только для чтения. Подробности смотрите в следующем примере:

http://qt-project.org/doc/qt-5/qtquick-window-screeninfo-qml.html

Правильный способ на сегодняшний день — использовать для этого файл манифеста Android, как это сделал разработчик Qt Android в Digia для своего игра QtHangMan, а именно:

<activity android:screenOrientation="portrait" ... 
person lpapp    schedule 25.12.2013

Способ сделать это-

  1. Создайте каталог вне исходного кода — назовем его «templates» (может быть любым)
  2. Скопируйте файл AndroidManifest.xml в "templates" из - <path to qt installation>/android_armv7/src/android/templates/AndroidManifest.xml.
  3. Отредактируйте скопированный файл AndroidManifext.xml в своем любимом редакторе, измените ориентацию с «unspecified» на «sensorLandscape» (или любую другую, которую вы предпочитаете) и сохраните файл.
  4. В файле qmake (*.pro) вашего проекта добавьте следующую строку:

    ANDROID_PACKAGE_SOURCE_DIR = <path to your templates directory> #если вы добавили каталог на один выше исходного каталога, путь к каталогу ваших шаблонов = "../templates"

  5. Стройте и запускайте. Теперь вы должны увидеть, что ориентация фиксируется на том, что вы указали в пользовательском файле 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

person Arun    schedule 15.02.2017