Spec-Zone.ru › Qt 5.9

Тип QML Dialog

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

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

Свойства

  • clickedButton : StandardButton
  • contentItem : QObject
  • modality : Qt::WindowModality
  • standardButtons : StandardButtons
  • title : строка
  • visible : bool

Сигналы

  • accepted()
  • apply()
  • discard()
  • help()
  • no()
  • rejected()
  • reset()
  • yes()

Методы

  • void close()
  • void open()

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

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

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

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

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

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

clickedButton : StandardButton

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

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
        }
    }
}

modality : Qt::WindowModality

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

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

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

standardButtons : StandardButtons

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

Постоянная Описание
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.

title : строка

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

visible : bool

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

См. также modality.

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

accepted()

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

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

apply()

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

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

discard()

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

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

help()

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

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

no()

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

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

rejected()

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

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

reset()

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

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

yes()

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

Соответствующий обработчик — 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.9/qml-qtquick-dialogs-dialog.html

Spec-Zone.ru

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