Тип QML диалога
Обертка QtQuick для диалога общего назначения со стандартными кнопками. Подробнее...
| Заявление об импорте: | import QtQuick.Dialogs 1.3 |
| С тех пор: | Qt 5.3 |
Свойства
- clickedButton : StandardButton
- contentItem : QObject
- модальность : Qt::WindowModality
- стандартныеКнопки : StandardButtons
- заголовок : строка
- видимый : bool
Сигналы
Методы
Подробное описание
Цель 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. Вы можете контролировать доступные кнопки, задавая стандартныеКнопки в виде побитовой комбинации следующих флагов:
| Постоянная | Описание |
|---|---|
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.
заголовок : строка
Заголовок окна диалога.
видимый : bool
Это свойство показывает, отображается ли диалог. По умолчанию это false.
См. также модальность.
Документация по сигналам
принят()
Этот сигнал выводится, когда пользователь нажал любую кнопку с AcceptRole: ОК, Открыть, Сохранить, Сохранить все, Повторить или Пропустить.
Соответствующий обработчик onAccepted.
применить()
Этот сигнал выводится, когда пользователь нажал кнопку Применить.
Соответствующий обработчик onApply.
отбросить()
Этот сигнал выводится, когда пользователь нажал кнопку Отбросить.
Соответствующий обработчик onDiscard.
справка()
Этот сигнал выводится, когда пользователь нажал кнопку Справка. В зависимости от платформы, диалог может не закрываться автоматически, поскольку предоставленная вашим приложением справка должна быть актуальной для текста, показанного в этом диалоге, чтобы помочь пользователю принять решение. Однако на других платформах невозможно отобразить диалог и окно справки одновременно. Если вы хотите убедиться, что диалог закроется, вы можете установить видимый в false в вашем обработчике.
Соответствующий обработчик onHelp.
нет()
Этот сигнал излучается, когда пользователь нажал любую кнопку, которая имеет роль 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/archives/qt-5.11/qml-qtquick-dialogs-dialog.html