Spec-Zone.ru › Qt 5.11

Тип QML диалога

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

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

Свойства

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

Сигналы

  • принят()
  • применить()
  • отбросить()
  • справка()
  • нет()
  • отклонено()
  • сбросить()
  • да()

Методы

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

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

Цель 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

Spec-Zone.ru

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