QML-тип ApplicationWindow

Компонент верхнего уровня приложения ОС Аврора. Подробнее...

Строка импорта: import Sailfish.Silica 1.0
Наследуется от: SilicaControl

Свойства

Методы

Подробное описание

Тип ApplicationWindow используется для создания элемента верхнего уровня в приложении ОС Аврора.

Каждое приложение ОС Аврора должно иметь один компонент ApplicationWindow определенный в корне его иерархии. Окно приложения — это точка входа для загрузки приложения.

  • управлять стеком страниц;
  • устанавливать активную обложку;
  • устанавливать фоновый рисунок;
  • обрабатывать изменения ориентации для обновления пользовательского интерфейса.

Самое простое окно приложения состоит из одной initialPage — страницы, которая отображается при открытии приложения:

 import Sailfish.Silica 1.0

 ApplicationWindow {
     initialPage: Component {
         Page {
             Text { text: "Ahoy!" }
         }
     }
 }

Иерархическая навигация со стеком страниц приложения

Каждое окно приложения содержит один стек страниц, доступный через свойство pageStack, который определяет контент, отображаемый приложением. Стек состоит из объектов Page: каждая страница содержит контент, который будет отображаться приложением в определенный момент времени. Страница с контентом может быть добавлена (push) в стек или удалена (pop) из стека. Самая верхняя страница — это страница, которая последней была помещена в стек и которая в настоящее время отображается в окне приложения.

Ниже представлено простое приложение, которое изначально отображает страницу, содержащую единственную кнопку. Когда кнопка нажата, Page определенная как AnotherPage.qml помещается в стек и становится самой верхней страницей, отображаемой приложением:

 // main.qml
 import QtQuick 2.2
 import Sailfish.Silica 1.0

 ApplicationWindow {
     initialPage: Component {
         Page {
             Button {
                 text: "Ahoy!"
                 onClicked: pageStack.push("AnotherPage.qml")
             }
         }
     }
 }
 // AnotherPage.qml
 import QtQuick 2.2
 import Sailfish.Silica 1.0

 Page {
     Button {
         text: "close this page"
         onClicked: pageStack.pop()
     }
 }

Получить дополнительную информацию об изменении стека страниц можно в документации PageStack.

Активные обложки: предоставление статуса приложения на главном экране

Для каждого приложения ОС Аврора может быть установлена собственная активная обложка через свойство cover. Активная обложка — это визуальное представление приложения, которое отображается на домашнем экране, когда приложение работает в фоновом режиме. Обложка позволяет взаимодействовать с приложением (например, выполнять какие-либо действия) либо просто отображать его статус.

Например:

 ApplicationWindow {
     initialPage: Component { MyPage {} }
     cover: Component { MyCover {} }
 }

Обложка должна предусматривать возможность масштабирования, так как ее размер может изменяться в зависимости от количества приложений, запущенных в фоновом режиме. Если для обложки необходимы какие-либо действия, то их реализацию следует выполнять в контейнере CoverActionList.

Включение изменений ориентации

Приложению можно разрешить изменять ориентацию пользовательского интерфейса в соответствии с изменением ориентации устройства либо ограничить пользовательский интерфейс одной ориентацией, изменив свойство allowedOrientations.

Свойство orientation отражает текущую ориентацию пользовательского интерфейса и может быть использовано для оптимального (для текущей ориентации) расположения элементов.

Для приложений, использующих объект типа PageStack, следует предпочесть использование функциональности, экспортированной компонентом Page для поддержки нескольких ориентаций.

Описание свойств

allowedOrientations : enumeration

Содержит набор значений ориентаций, которые могут задавать поворот интерфейса. Значение может быть любой комбинацией из:

  • Orientation.Portrait;
  • Orientation.Landscape;
  • Orientation.PortraitInverted;
  • Orientation.LandscapeInverted.

Кроме этого, могут быть использованы следующие значения:

  • Orientation.PortraitMask;
  • Orientation.LandscapeMask;
  • Orientation.All.

Ориентация интерфейса пользователя управляется путем изменения значения свойства allowedOrientations. .

Если текущая ориентация устройства разрешена, то при изменении свойства allowedOrientations она сразу будет выбрана в качестве ориентации интерфейса пользователя. В противном случае, будет проверена следующая последовательность ориентаций относительно маски, и будет выбрана первая разрешенная ориентация: Portrait, Landscape, LandscapeInverted, PortraitInverted.

Если приложение по умолчанию должно повторять ориентацию других приложений платформы, свойство allowedOrientations может быть привязано к defaultAllowedOrientations. Следует обратить внимание, что значение defaultAllowedOrientations зависит от конфигурации устройства.

Приложение может установить свойство allowedOrientations так, чтобы ограничить набор возможных ориентаций для всех страниц в PageStack. Затем фактическая ориентация выбирается из пересечения разрешенных ориентаций для ApplicationWindow и для Page, которая является текущей вершиной стека. Если текущая страница требует ориентации, которую свойство ApplicationWindow не разрешает, то ориентация Page будет иметь приоритет.

Значение по умолчанию: Orientation.All.

См. также: orientation, defaultAllowedOrientations, deviceOrientation и Page.

bottomMargin : real

Отступ между стеком страниц и нижней частью окна приложения. Значение по умолчанию равно 0.0.

Данное свойство может использоваться, например, чтобы показывать «плавающие» элементы управления, которые всегда видны независимо от отображаемой страницы.

Примечание. Зарезервированная область больше, чем содержимое, отображаемое в bottomMargin, и панель ввода. Если отображается панель ввода, тогда содержимое, находящееся в bottomMargin, будет перекрыто.

contentItem : Item

Содержит внутренний элемент, содержащий дочерние элементы окна приложения.

Дочерние элементы окна приложения наследуются от элемента contentItem. Размер и расположение contentItem соответствуют размеру и расположению текущей страницы, но координаты contentItem не вращаются. Рекомендуется размещать весь контент на странице, поскольку он правильно обрабатывает изменения координат. Элементам, которые являются дочерними элементами окна приложения, нужно самим позаботиться об изменениях ориентации.

cover : var

Определяет обложку, которая отображается на главном экране, когда приложение находится в фоновом режиме. На обложке обычно отображается текущее состояние приложения. В зависимости от количества открытых приложений изменяется размер обложки на домашнем экране, поэтому обложка должна быть масштабируемой.

Обложка должна быть компонентом верхнего уровня Cover или URL-адресом, указывающим на загружаемый компонент. Также она может быть экземпляром обложки, что не рекомендуется, так как обложка будет загружена до того, как она будет показана.

Обложка также может допускать взаимодействие посредством CoverActionList.

[read-only] defaultAllowedOrientations : enumeration

Содержит значения ориентаций устройства, которые разрешены по умолчанию. Значение может быть любой комбинацией из:

  • Orientation.Portrait;
  • Orientation.Landscape;
  • Orientation.PortraitInverted;
  • Orientation.LandscapeInverted.

Значение свойства зависит от конфигурации устройства. Как правило, для планшетного устройства будут разрешены все ориентации, а телефон будет исключать ориентацию перевернутого портрета.

См. также orientation и allowedOrientations.

deviceOrientation : enumeration

Содержит текущую ориентацию устройства.

  • Orientation.Portrait;
  • Orientation.Landscape;
  • Orientation.PortraitInverted;
  • Orientation.LandscapeInverted.

Данное свойство отражает текущую ориентацию устройства. Она изменяется при изменении положения устройства.

См. также orientation и allowedOrientations.

initialPage : var

Определяет страницу, которая отображается, когда приложение открыто. Это может быть объект Page, компонент, в котором определена страница Page, или URL-адрес загружаемого компонента типа Page.

Следует обратить внимание, что если экземпляр создается явно, как в примере ниже:

 ApplicationWindow {
     initialPage: Page {
         // ...
     }
 }

то компонент Page создается без родителя, поскольку сам ApplicationWindow еще не создан. Это означает, что любые свойства, зависящие от родителя, будут обработаны заново после создания экземпляра ApplicationWindow.

Предпочтительно предоставлять компонент, который может быть использован для создания экземпляра страницы, после того, как будет создан экземпляр ApplicationWindow. Тогда приведенный выше пример должен выглядеть так:

 ApplicationWindow {
     initialPage: Component {
         Page {
             // ...
         }
     }
 }

См. также: PageStack::push().

[read-only] orientation : enumeration

Содержит текущую ориентацию интерфейса пользователя.

  • Orientation.Portrait;
  • Orientation.Landscape;
  • Orientation.PortraitInverted;
  • Orientation.LandscapeInverted.

Для проверки портретной и альбомной ориентации, без учета естественных или инвертированных вариантов, могут быть использованы следующие маски:

  • Orientation.PortraitMask;
  • Orientation.LandscapeMask;

Данное свойство описывает текущую ориентацию интерфейса пользователя, выбранную маской allowedOrientations. Она может использоваться для настройки расположения элементов пользовательского интерфейса в соответствии с текущей ориентацией.

Приложение, использующее PageStack, не должно использовать это значение напрямую. Для расположения элементов Page должно использоваться свойство orientation компонента Page, т. к. оно изменяется синхронно с анимацией перехода ориентации.

См. также: allowedOrientations, deviceOrientation и Page.

pageStack : PageStack

Содержит страницы, отображаемые в приложении.

Свойство initialPage будет автоматически добавлено ​​в pageStack. Дополнительные страницы могут быть добавлены в стек или удалены из стека.

См. также: PageStack.

screenRotation : real

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

Свойство screenRotation первоначально считывается из ключа GConf /desktop/jolla/components/screen_rotation_angle. Также данное свойство может быть изменено во время выполнения. Поворот экрана может быть кратным 90 градусам.

Описание методов

activate()

Выводит приложение на передний план в полноэкранном режиме.

deactivate()

Отправляет приложение в фоновый режим. Свернутое приложение отображается как активная обложка на домашнем экране.