QML-тип Dialog
Страница, закрываемая действием подтверждения или отмены. Подробнее…
| Строка импорта: | import Sailfish.Silica 1.0 |
| Наследуется от: | Page |
| Наследники: | ColorPickerDialog |
Свойства
- acceptDestination : var
- acceptDestinationAction : enumeration
- acceptDestinationInstance : Page
- acceptDestinationProperties : var
- acceptDestinationReplaceTarget : Page
- acceptPending : bool
- canAccept : bool
- result : enumeration
- status : enumeration
Сигналы
- acceptBlocked()
- onAccepted()
- onDone()
- onOpened()
- onRejected()
Методы
Подробное описание
Тип Dialog предоставляет контейнер для отображения диалоговой страницы.
Открытие диалога приводит к добавлению диалоговой страницы в начало PageStack. Компонент Dialog
реализует компонент Page с изменением внешнего вида и поведения интерфейса пользователя. Диалоги содержат
визуальные индикаторы в верхнем левом и правом верхнем углу. Пользователь может принять диалог, т. е. подтвердить
любые изменения пользователя или входные данные, и продолжить — переместив страницу справа налево или нажав на надпись
acceptText в DialogHeader. И наоборот, пользователь может отклонить диалог, сигнализируя
об отмене действия, переместив страницу слева направо или нажав на надпись cancelText
в DialogHeader.
Ниже приведён пример простого диалога, определенного в NameInputDialog:
// NameInputDialog.qml
import QtQuick 2.2
import Sailfish.Silica 1.0
Dialog {
property string name
Column {
width: parent.width
DialogHeader { }
TextField {
id: nameField
width: parent.width
placeholderText: "Как вас зовут?"
label: "Имя"
}
}
onDone: {
if (result == DialogResult.Accepted) {
name = nameField.text
}
}
}
Пример простого приложения, которое загружает экземпляр данного диалога:
import QtQuick 2.2
import Sailfish.Silica 1.0
ApplicationWindow {
initialPage: Component {
Page {
PageHeader { id: header }
Button {
text: "Спроси меня"
anchors {
top: header.bottom
horizontalCenter: parent.horizontalCenter
}
onClicked: {
var dialog = pageStack.push(Qt.resolvedUrl("NameInputDialog.qml"),
{"name": header.title})
dialog.accepted.connect(function() {
header.title = "Моё имя: " + dialog.name
})
}
}
}
}
}
Выше, NameInputDialog реализует обработчик сигнала onDone, вызываемый при закрытии
диалога, чтобы установить значение свойства name, если диалог принят. В main.qml нажатие кнопки вызывает
PageStack::push() и открывает экземпляр диалоговой страницы "NameInputDialog" с указанным
значением свойства name. Кроме того, сигнал accepted компонента Dialog, который
означает, что диалог был принят пользователем, подключён к обновлению значения свойства header.title.
Когда компонент Dialog принимается, вызывается обработчик сигнала onAccepted
и свойство result устанавливается в значение DialogResult.Accepted. При отклонении диалога
вызывается обработчик сигнала onRejected и свойство result
устанавливается в значение DialogResult.Rejected. Диалог также может быть принят или отклонен программно с помощью
методов accept() и reject(). Кроме того, метод
close() позволяет закрыть диалог без принятия или отклонения.
DialogHeader следует использовать для предоставления стандартных индикаторов в верхней части диалоговой страницы.
Описание свойств
acceptDestination : var
Может использоваться для указания целевой страницы, которая устанавливается как вершина стека страниц, когда диалог принят. Если данное свойство задано, то стек страниц не будет визуально возвращаться на страницу, с которой был вызван диалог, что произойдет, если вручную помещать страницу в стек в обработчике onAccepted.
Данное свойство может принимать значение одного из следующих типов:
- объект
Item; - объект Component;
- URL компонента Page (например, "MyPage.qml");
- URI или диалог
Sailfish.Silica(например, "Sailfish.Silica.TimePickerDialog").
Свойство acceptDestinationAction определяет, какое из действий навигации будет выполнено при принятии диалога.
См. также acceptDestinationProperties, acceptDestinationAction и PageStack::push.
acceptDestinationAction : enumeration
Когда для диалога задано свойство acceptDestination, свойство
acceptDestinationAction может быть использовано для указания действия, которое следует предпринять в случае принятия
диалога.
Данное свойство должно принимать одно из значений:
PageStackAction.Push— целевая страница будет помещена в стек;PageStackAction.Replace— целевая страница будет заменена на страницу, которая была первоначально в вершине стека;PageStackAction.Pop— все страницы над целевой страницей будут удалены из стека.
Если установлено значение PageStackAction.Pop, свойство acceptDestination должно
ссылаться на страницу, которая уже присутствует в стеке страниц.
Действием по умолчанию является PageStackAction.Push.
См. также acceptDestination.
acceptDestinationInstance : Page
Если для диалога задано свойство acceptDestination, то с помощью свойства
acceptDestinationInstance можно получить доступ к объекту страницы, создаваемой после принятия диалога.
См. также acceptDestination и acceptPending.
acceptDestinationProperties : var
Если для диалога задано свойство acceptDestination, то с помощью свойства
acceptDestinationProperties можно получить доступ ко всем дополнительным свойствам страницы, создаваемой после
принятия диалога.
Страница, указанная в свойстве acceptDestination, создается сразу же после
открытия диалога. Поэтому к значениям в свойстве acceptDestinationProperties можно обратиться еще до принятия диалога.
Проверяя значение свойства acceptPending, можно реагировать на начало принятия диалога
пользователем.
См. также acceptDestination, acceptDestinationInstance и acceptPending.
acceptDestinationReplaceTarget : Page
Когда свойство acceptDestinationAction принимает значение
PageStackAction.Replace, свойство acceptDestinationReplaceTarget можно дополнительно настроить для управления
страницами, которые нужно заменить, когда диалог будет принят.
Если свойство acceptDestinationReplaceTarget указывает на страницу, находящуюся в данный момент в стеке, то принятие
диалога приведет к этой странице, а все страницы, находящиеся выше, будут удалены из стека.
Если свойство acceptDestinationReplaceTarget принимает значение null, то при принятии диалога будут удалены все
страницы, находящиеся в данный момент в стеке путем их замены целевой страницей.
См. также acceptDestination, acceptDestinationAction и PageStack::replaceAbove().
acceptPending : bool
Истинно, когда пользователем выполняется действие (например, жест), по завершению которого диалог будет принят.
canAccept : bool
Устанавливает, может ли пользователь принять диалог в его текущем состоянии или нет. Если свойство canAccept принимает
значение false, то диалог не будет реагировать на попытки принять содержимое.
См. также accept().
result : enumeration
Предоставляет результат закрытия диалога. Данное свойство может принимать одно из значений:
DialogResult.Accepted— диалог был принят пользователем или вызовом метода accept();DialogResult.Rejected— диалог был отклонён пользователем или вызовом метода reject();DialogResult.None— диалог был закрыт без принятия или отклонения, например, вызовом метода close().
status : enumeration
Предоставляет текущее состояние диалога. Данное свойство может принимать одно из значений:
DialogStatus.Closed— диалог не активен и не отображается;DialogStatus.Opening— диалог переходит в состояниеOpened;DialogStatus.Opened— диалог активен;DialogStatus.Closing— диалог переходит в состояниеClosed.
См. также result.
Описание сигналов
acceptBlocked()
Обработчик данного сигнала вызывается при попытке принятия диалога, в то время как свойство
canAccept установлено в значение false.
onAccepted()
Обработчик данного сигнала вызывается, когда диалог принят.
Диалог принимается, если пользователь нажимает на надпись acceptText в DialogHeader или
сдвигает диалоговую страницу справа налево, или если вызывается метод accept().
onDone()
Обработчик данного сигнала полезен для разработчиков диалоговых страниц. Вызывается, когда диалог близится к завершению, до вызова обработчиков onAccepted и onRejected.
См. также onOpened, onAccepted и onRejected.
onOpened()
Обработчик данного сигнала полезен для разработчиков диалоговых страниц. Он вызывается, когда открывается диалог. А также может использоваться, например, для заполнения начальных значений в диалоге.
onRejected()
Обработчик данного сигнала вызывается, когда диалог отклонён.
Диалог отклоняется, если пользователь нажимает верхний левый cancelText в DialogHeader или
сдвигает диалоговую страницу слева направо, или если вызывается метод reject().
Описание методов
accept()
Устанавливает свойство result в значение DialogResult.Accepted и закрывает диалог, удаляя
его из PageStack приложения.
См. также onAccepted и canAccept.
close()
Закрывает диалог без изменения свойства result и удаляет его из PageStack приложения.
open(replace, immediate)
Отображает диалог, добавив его сверху в PageStack приложения.
По умолчанию диалог добавляется через анимированный переход. Эту анимацию можно отключить, указав параметр immediate
как true. Чтобы заменить находящуюся в вершине стека страницу на диалог, следует задать параметр replace как true.
См. также onOpened, PageStack::push() и PageStack::replace().
reject()
Устанавливает свойство result в значение DialogResult.Rejected и закрывает диалог, удаляя
его из PageStack приложения.
См. также onRejected.