Spec-Zone.ru › Qt 5.14

Тип QML диалога

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

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

Свойства

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

Сигналы

  • accepted()
  • actionChosen(action)
  • 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 Кнопка 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: OK, Открыть, Сохранить, Сохранить все, Повторить или Пропустить.

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

actionChosen(action)

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

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

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

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

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

apply()

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

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

discard()

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

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

help()

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

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

no()

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

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

rejected()

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

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

Spec-Zone.ru

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