Spec-Zone.ru › Qt 5.6

Тип QML Диалог

Обертка 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()

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

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

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

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

Примечание: не пытайтесь связать ширину или высоту диалога с шириной или высотой его содержимого, так как диалог уже пытается изменить свой размер, чтобы поместиться в содержимое. Если ваша цель — изменить или удалить отступы, вы должны переопределить 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. Вы можете управлять доступными кнопками, задавая стандартные кнопки в виде побитового ИЛИ комбинации следующих флагов:

Константа Описание
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/archives/qt-5.6/qml-qtquick-dialogs-dialog.html

Spec-Zone.ru

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