Spec-Zone.ru › Qt 5.15

Тип QML Dialog

Обёртка диалогового окна QtQuick общего назначения со стандартными кнопками. Подробнее...

Заявление об импорте: import QtQuick.Dialogs 1.3
С момента: Qt 5.3
  • Список всех членов, включая унаследованные

Свойства

  • clickedButton : StandardButton
  • contentItem : QObject
  • модальность : Qt::WindowModality
  • стандартныеКнопки : StandardButtons
  • заголовок : string
  • видимость : bool

Сигналы

  • accepted()
  • actionChosen(переменная действие)
  • apply()
  • discard()
  • help()
  • no()
  • rejected()
  • reset()
  • yes()

Методы

  • void закрыть()
  • void открыть()

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

Класс Dialog предназначен для обёртки произвольного содержимого в диалоговое окно, включая строку кнопок, адаптированных под платформу.

Примечание: На Android рекомендуется использовать Qt Quick Controls 2 Dialog.

Свойство contentItem является свойством по умолчанию (единственный разрешённый дочерний элемент), и элементы, объявленные внутри Dialog, фактически будут дочерними элементами другого элемента Item внутри contentItem. Строка стандартных кнопок также будет находиться внутри contentItem ниже объявленного содержимого, и Dialog попытается задать свой размер, чтобы он соответствовал содержимому и кнопкам.

В качестве альтернативы можно связать contentItem с пользовательским элементом Item, в этом случае кнопок, отступов не будет, а пользовательское содержимое заполнит всё диалоговое окно. Это очень похоже на создание Window, за исключением того, что на платформах, которые не поддерживают показ нескольких окон, границы окна будут смоделированы, и оно будет показано в той же сцене.

Примечание: Не пытайтесь связать ширину или высоту диалогового окна с шириной или высотой его содержимого, поскольку Dialog уже пытается задать свой размер в соответствии с содержимым. Если ваша цель — изменить или устранить отступы, вы должны переопределить contentItem. Если ваша цель — просто отобразить окно (модальное или нет), и ваша платформа это поддерживает, проще использовать Window вместо этого.

Документация по свойствам

clickedButton : StandardButton

Это свойство содержит нажатую пользователем кнопку. Его значение — один из флагов, установленных для свойства стандартныеКнопки.

contentItem : QObject

Объект QML, реализующий содержимое диалогового окна. Должен быть элементом Item.

Например, следующее диалоговое окно отобразит пользовательское содержимое без кнопок:

import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Dialogs 1.2

Dialog {
    visible: true
    title: "Blue sky dialog"

    contentItem: Rectangle {
        color: "lightskyblue"
        implicitWidth: 400
        implicitHeight: 100
        Text {
            text: "Hello blue sky!"
            color: "navy"
            anchors.centerIn: parent
        }
    }
}

модальность : Qt::WindowModality

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

По умолчанию это Qt.WindowModal.

Модальность не означает, что есть какие-либо блокирующие вызовы ожидания принятия или отклонения диалогового окна: она только предотвращает взаимодействие пользователя с родительским окном или окнами приложения до закрытия диалогового окна.

стандартныеКнопки : StandardButtons

Диалоговое окно имеет строку кнопок внизу, каждая из которых имеет значение ButtonRole, определяющее, какой сигнал будет испущен при нажатии на кнопку. Вы также можете узнать, какая конкретная кнопка была нажата после того, как это произошло, через свойство clickedButton. Вы можете управлять доступными кнопками, установив стандартныеКнопки в комбинацию битовых OR следующих флагов:

Постоянная Описание
StandardButton.Ok Кнопка ОК, определённая с помощью AcceptRole.
StandardButton.Open Кнопка Открыть, определённая с помощью AcceptRole.
StandardButton.Save Кнопка Сохранить, определённая с помощью AcceptRole.
StandardButton.Cancel Кнопка Отмена, определённая с помощью RejectRole.
StandardButton.Close Кнопка Закрыть, определённая с помощью RejectRole.
StandardButton.Discard Кнопка Отбросить или Не сохранять (в зависимости от платформы), определённая с помощью DestructiveRole.
StandardButton.Apply Кнопка Применить, определённая с помощью ApplyRole.
StandardButton.Reset Кнопка Сбросить, определённая с помощью ResetRole.
StandardButton.RestoreDefaults Кнопка Восстановить значения по умолчанию, определённая с помощью ResetRole.
StandardButton.Help Кнопка Справка, определённая с помощью HelpRole.
StandardButton.SaveAll Кнопка Сохранить все, определённая с помощью AcceptRole.
StandardButton.Yes Кнопка Да, определённая с помощью YesRole.
StandardButton.YesToAll Кнопка Да для всех, определённая с помощью YesRole.
StandardButton.No Кнопка Нет, определённая с помощью NoRole.
StandardButton.NoToAll Кнопка Нет для всех, определённая с помощью NoRole.
StandardButton.Abort Кнопка Прервать, определённая с помощью RejectRole.
StandardButton.Retry Кнопка Повторить, определённая с помощью AcceptRole.
StandardButton.Ignore Кнопка Пропустить, определённая с помощью AcceptRole.

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

import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Dialogs 1.2

Dialog {
    id: dateDialog
    visible: true
    title: "Choose a date"
    standardButtons: StandardButton.Save | StandardButton.Cancel

    onAccepted: console.log("Saving the date " +
        calendar.selectedDate.toLocaleDateString())

    Calendar {
        id: calendar
        onDoubleClicked: dateDialog.click(StandardButton.Save)
    }
}

Значение по умолчанию StandardButton.Ok.

Значения перечисления совпадают с QMessageBox::StandardButtons.

заголовок : string

Заголовок диалогового окна.

видимость : bool

Это свойство содержит значение, указывающее, видно ли диалоговое окно. По умолчанию это false.

См. также модальность.

Документация по сигналам

accepted()

Этот сигнал испускается, когда пользователь нажал любую кнопку с AcceptRole: ОК, Открыть, Сохранить, Сохранить все, Повторить или Пропустить.

Соответствующий обработчик — onAccepted.

Примечание: Соответствующий обработчик — onAccepted.

actionChosen(переменная действие)

Этот сигнал испускается, когда пользователь нажал любую кнопку или клавишу, связанную с определённым ролевым назначением (например, клавиши ВВОД или ESC). Параметр действие несёт информацию о событии:

  • StandardButton button — Роль кнопки, которая была нажата. Если вместо этого была нажата клавиша, это будет StandardButton.Ok при принятии и StandardButton.Cancel при отклонении.
  • Qt.Key key — Нажатая клавиша или 0 в случае отсутствия нажатия.
  • bool accepted — Установите это значение в false чтобы предотвратить срабатывание предварительно определённого действия события.

Обработкой этого сигнала и установкой значения поля action.accepted в false можно реализовать некоторую валидацию содержимого диалогового окна перед его принятием, например.

Соответствующий обработчик — onActionChosen.

Примечание: Соответствующий обработчик — onActionChosen.

Этот сигнал был добавлен в QtQuick.Controls 1.8.

apply()

Этот сигнал испускается, когда пользователь нажимает кнопку Применить.

Соответствующий обработчик — onApply.

Примечание: Соответствующий обработчик — onApply.

discard()

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

Соответствующий обработчик — onDiscard.

Примечание: Соответствующий обработчик — onDiscard.

help()

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

Соответствующий обработчик — onHelp.

Примечание: Соответствующий обработчик — onHelp.

no()

Этот сигнал испускается, когда пользователь нажимает любую кнопку, у которой есть роль NoRole: Нет или Нет всем.

Соответствующий обработчик — onNo.

Примечание: Соответствующий обработчик — onNo.

rejected()

Этот сигнал испускается, когда пользователь закрыл диалог, закрыв окно диалога, нажав кнопку Отмена, Закрыть или Прервать в диалоге, или нажав кнопку возврата или клавишу Escape.

Соответствующий обработчик — onRejected.

Примечание: Соответствующий обработчик — onRejected.

reset()

Этот сигнал испускается, когда пользователь нажимает любую кнопку, у которой есть роль ResetRole: Сбросить или Восстановить значения по умолчанию.

Соответствующий обработчик — onReset.

Примечание: Соответствующий обработчик — onReset.

yes()

Этот сигнал испускается, когда пользователь нажимает любую кнопку, у которой есть роль YesRole: Да или Да всем.

Соответствующий обработчик — onYes.

Примечание: Соответствующий обработчик — onYes.

Документация по методам

void close()

Закрывает диалог.

void open()

Отображает диалог пользователю. Это эквивалентно установке visible в true.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qml-qtquick-dialogs-dialog.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API