Spec-Zone.ru › Qt 5.11

Тип QML Popup

Базовый тип элементов пользовательского интерфейса, похожих на всплывающие окна. Подробнее...

Заявление об импорте: import QtQuick.Controls 2.4
С момента: Qt 5.7
Наследует:

QtObject

Наследуется от:

Dialog, Drawer, Menu и ToolTip

  • Список всех членов, включая наследуемые

Свойства

  • activeFocus : bool
  • availableHeight : real
  • availableWidth : real
  • background : Item
  • bottomMargin : real
  • bottomPadding : real
  • clip : bool
  • closePolicy : перечисление
  • contentChildren : список<Item>
  • contentData : список<Объект>
  • contentHeight : real
  • contentItem : Item
  • contentWidth : real
  • dim : bool
  • enabled : bool
  • enter : Переход
  • exit : Переход
  • focus : bool
  • font : шрифт
  • height : real
  • implicitHeight : real
  • implicitWidth : real
  • leftMargin : real
  • leftPadding : real
  • locale : Локаль
  • margins : real
  • mirrored : bool
  • modal : bool
  • opacity : real
  • opened : bool
  • padding : real
  • palette : палитра
  • parent : Item
  • rightMargin : real
  • rightPadding : real
  • scale : real
  • spacing : real
  • topMargin : real
  • topPadding : real
  • transformOrigin : перечисление
  • visible : bool
  • width : real
  • x : real
  • y : real
  • z : real

Сигналы

  • void aboutToHide()
  • void aboutToShow()
  • void closed()
  • void opened()

Методы

  • void close()
  • forceActiveFocus(reason = Qt.OtherFocusReason)
  • void open()

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

Popup — это базовый тип элементов пользовательского интерфейса, похожих на всплывающие окна. Он может использоваться с Window или ApplicationWindow.

import QtQuick.Window 2.2
import QtQuick.Controls 2.1

ApplicationWindow {
    id: window
    width: 400
    height: 400
    visible: true

    Button {
        text: "Open"
        onClicked: popup.open()
    }

    Popup {
        id: popup
        x: 100
        y: 100
        width: 200
        height: 300
        modal: true
        focus: true
        closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
    }
}

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

Popup не предоставляет собственной компоновки, но требует размещения своего содержимого, например, создавая RowLayout или ColumnLayout.

Элементы, объявленные как дочерние элементы Popup, автоматически становятся дочерними элементами contentItem Popup. Динамически созданные элементы необходимо явно присоединять к contentItem.

Компоновка Popup

На следующей диаграмме показана компоновка всплывающего окна в окне:

Значения implicitWidth и implicitHeight всплывающего окна обычно основаны на неявных размерах фона и элемента содержимого плюс любой padding. Эти свойства определяют, каким будет размер всплывающего окна, если явно не указаны width или height.

Элемент background заполняет всю ширину и высоту всплывающего окна, если для него не задан явный размер.

Геометрия элемента contentItem определяется padding.

Изменение размера Popup

Если используется только один элемент внутри Popup, он будет изменён так, чтобы соответствовать неявным размерам содержащего элемента. Это делает его особенно подходящим для совместной работы с компоновками.

Popup {
    ColumnLayout {
        anchors.fill: parent
        CheckBox { text: qsTr("E-mail") }
        CheckBox { text: qsTr("Calendar") }
        CheckBox { text: qsTr("Contacts") }
    }
}

Иногда внутри Popup может быть два элемента:

Popup {
    SwipeView {
        // ...
    }
    PageIndicator {
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.bottom: parent.bottom
    }
}

В этом случае Popup не может рассчитать разумный неявный размер. Поскольку мы закрепляем PageIndicator над SwipeView, мы можем просто установить размер содержимого в неявный размер представления:

Popup {
    contentWidth: view.implicitWidth
    contentHeight: view.implicitHeight

    SwipeView {
        id: view
        // ...
    }
    PageIndicator {
        anchors.horizontalCenter: parent.horizontalCenter
        anchors.bottom: parent.bottom
    }
 }

Размещение Popup

Аналогично элементам в Qt Quick, координаты x и y Popup относятся к его родителю. Это означает, что открытие Popup, являющегося дочерним элементом Button, например, приведет к размещению Popup относительно кнопки.

Следующий пример использует связанное свойство Overlay.overlay, чтобы разместить Popup в центре окна, несмотря на положение кнопки, открывающей Popup:

Button {
    onClicked: popup.open()

    Popup {
        id: popup

        parent: Overlay.overlay

        x: Math.round((parent.width - width) / 2)
        y: Math.round((parent.height - height) / 2)
        width: 100
        height: 100
    }
}

См. также Элементы управления Popup, Настройка Popup и ApplicationWindow.

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

[только для чтения] activeFocus : bool

Это свойство содержит значение, указывающее, имеет ли всплывающее окно активный фокус.

См. также focus и Фокус клавиатуры в Qt Quick.

[только для чтения] availableHeight : real

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

См. также padding, topPadding и bottomPadding.

[только для чтения] availableWidth : real

Это свойство содержит ширину, доступную для contentItem, после вычитания горизонтальной отступы из ширины всплывающего окна.

См. также padding, leftPadding и rightPadding.

background : Элемент

Это свойство содержит элемент фона.

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

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

См. также Настройка всплывающего окна.

bottomMargin : real

Это свойство содержит расстояние между нижним краем всплывающего окна и нижним краем его окна.

Всплывающее окно с отрицательным нижним отступом не выводится внутри нижнего края окружающего окна. Значение по умолчанию равно -1.

См. также margins, topMargin и Макет всплывающего окна.

bottomPadding : real

Это свойство содержит нижний отступ.

Свойства отступа используются для управления геометрией элемента содержимого.

Всплывающее окно использует тот же подход к отступам, что и Control. Для визуального объяснения системы отступов см. раздел Макет управления в документации.

См. также padding, topPadding и availableHeight.

clip : bool

Это свойство указывает, включено ли обрезка. Значение по умолчанию равно false.

closePolicy : перечисление

Это свойство определяет условия, при которых всплывающее окно закрывается. Флаги могут быть объединены, чтобы разрешить несколько способов закрытия всплывающего окна.

Доступные значения:

Константа Описание
Popup.NoAutoClose Всплывающее окно закроется только при ручном указании.
Popup.CloseOnPressOutside Всплывающее окно закроется при нажатии мыши вне него.
Popup.CloseOnPressOutsideParent Всплывающее окно закроется при нажатии мыши вне его родителя.
Popup.CloseOnReleaseOutside Всплывающее окно закроется при отпускании мыши вне него.
Popup.CloseOnReleaseOutsideParent Всплывающее окно закроется при отпускании мыши вне его родителя.
Popup.CloseOnEscape Всплывающее окно закроется при нажатии клавиши Escape, когда у всплывающего окна активный фокус.

Значение по умолчанию равно Popup.CloseOnEscape | Popup.CloseOnPressOutside.

Примечание: Существует известное ограничение, что политики Popup.CloseOnReleaseOutside и Popup.CloseOnReleaseOutsideParent работают только с модальными всплывающими окнами.

contentChildren : список<Элемент>

Это свойство содержит список дочерних элементов содержимого.

Список содержит все элементы, которые были объявлены в QML в качестве дочерних элементов всплывающего окна.

Примечание: В отличие от contentData, contentChildren не включает невизуальные объекты QML.

См. также Item::children и contentData.

[default] contentData : список<Объект>

Это свойство содержит список данных содержимого.

Список содержит все объекты, которые были объявлены в QML в качестве дочерних элементов всплывающего окна.

Примечание: В отличие от contentChildren, contentData включает невизуальные объекты QML.

См. также Item::data и contentChildren.

contentHeight : real

Это свойство содержит высоту содержимого. Оно используется для расчета общей неявной высоты Popup.

Дополнительную информацию см. в Размер всплывающего окна.

См. также contentWidth.

contentItem : Элемент

Это свойство содержит элемент содержимого всплывающего окна.

Элемент содержимого является визуальной реализацией всплывающего окна. Когда всплывающее окно становится видимым, элемент содержимого автоматически переродится в элемент наложения окна приложения.

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

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

См. также Настройка всплывающего окна.

contentWidth : real

Это свойство содержит ширину содержимого. Оно используется для расчета общей неявной ширины Popup.

Дополнительную информацию см. в Размер всплывающего окна.

См. также contentHeight.

dim : bool

Это свойство указывает, затемняет ли всплывающее окно фон.

Если явно не указано иначе, это свойство следует значению modal. Чтобы вернуться к значению по умолчанию, установите это свойство в undefined.

См. также modal.

enabled : bool

Это свойство указывает, включено ли всплывающее окно. Значение по умолчанию равно true.

Это свойство было добавлено в QtQuick.Controls 2.3 (Qt 5.10).

См. также visible и Item::enabled.

enter : Переход

Это свойство содержит переход, который применяется к элементу всплывающего окна при открытии и входе на экран.

Следующий пример анимирует непрозрачность всплывающего окна при входе на экран:

Popup {
    enter: Transition {
        NumberAnimation { property: "opacity"; from: 0.0; to: 1.0 }
    }
}

См. также exit.

exit : Переход

Это свойство содержит переход, который применяется к элементу всплывающего окна при закрытии и выходе со страницы.

Следующий пример анимирует непрозрачность всплывающего окна при выходе со страницы:

Popup {
    exit: Transition {
        NumberAnimation { property: "opacity"; from: 1.0; to: 0.0 }
    }
}

См. также enter.

focus : bool

Это свойство указывает, хочет ли всплывающее окно фокус.

Когда всплывающее окно фактически получает фокус, activeFocus будет true. Дополнительную информацию см. в Фокус клавиатуры в Qt Quick.

Значение по умолчанию равно false.

См. также activeFocus.

font : шрифт

Это свойство содержит шрифт, установленный для всплывающего окна.

Всплывающее окно передает явные свойства шрифта своим дочерним элементам. Если вы измените определенное свойство шрифта всплывающего окна, это свойство распространяется на все дочерние элементы всплывающего окна, перезаписывая любые системные значения по умолчанию для этого свойства.

Popup {
    font.family: "Courier"

    Column {
        Label {
            text: qsTr("This will use Courier...")
        }

        Switch {
            text: qsTr("... and so will this")
        }
    }
}

См. также Control::font и ApplicationWindow::font.

height : real

Это свойство содержит высоту всплывающего окна.

implicitHeight : real

Это свойство содержит неявную высоту всплывающего окна.

implicitWidth : real

Это свойство содержит неявную ширину всплывающего окна.

END_OF_DOCUMENT_MARKER

leftMargin : real

Это свойство задаёт расстояние между левым краем всплывающего окна и левым краем его окна.

Всплывающее окно с отрицательным отступом слева не будет смещено за левый край окружающего окна. Значение по умолчанию — -1.

См. также margins, rightMargin и Макет всплывающего окна.

leftPadding : real

Это свойство задаёт отступ слева.

Свойства отступа используются для управления геометрией элемента содержимого content item.

Всплывающее окно использует тот же подход к отступам, что и Control. Визуальное объяснение системы отступов можно найти в разделе Макет элемента управления документации.

См. также padding, rightPadding и availableWidth.

locale : Locale

Это свойство задаёт локаль всплывающего окна.

См. также mirrored и LayoutMirroring.

margins : real

Это свойство задаёт расстояние между краями всплывающего окна и краями его окна.

Всплывающее окно с отрицательными отступами не будет смещено за пределы окружающего окна. Значение по умолчанию — -1.

См. также topMargin, leftMargin, rightMargin, bottomMargin и Макет всплывающего окна.

[только для чтения] mirrored : bool

Это свойство указывает, зеркалится ли всплывающее окно.

Это свойство предоставлено для удобства. Всплывающее окно считается зеркальным, когда его направление визуального макета — справа налево, то есть при использовании локали справа налево.

Это свойство было введено в QtQuick.Controls 2.3 (Qt 5.10).

См. также locale и Интерфейсы пользователей справа налево.

modal : bool

Это свойство указывает, является ли всплывающее окно модальным.

Модальные всплывающие окна часто имеют характерный эффект затемнения фона, определяемый в overlay.modal, и не пропускают события нажатия и отпускания на элементы под ними.

На настольных платформах обычно модальные всплывающие окна закрываются только при нажатии клавиши Escape. Для достижения этого поведения установите closePolicy в Popup.CloseOnEscape.

Значение по умолчанию — false.

opacity : real

Это свойство задаёт непрозрачность всплывающего окна. Непрозрачность задаётся числом от 0.0 (полностью прозрачное) до 1.0 (полностью непрозрачное). Значение по умолчанию — 1.0.

См. также visible.

opened : bool

Это свойство указывает, открыто ли всплывающее окно полностью. Всплывающее окно считается открытым, когда оно видимое и ни одна из анимаций входа enter или выхода exit не выполняется.

Это свойство было введено в QtQuick.Controls 2.3 (Qt 5.10).

См. также open(), close() и visible.

padding : real

Это свойство задаёт значение отступа по умолчанию.

Свойства отступа используются для управления геометрией элемента содержимого content item.

Всплывающее окно использует тот же подход к отступам, что и Control. Визуальное объяснение системы отступов можно найти в разделе Макет элемента управления документации.

См. также availableWidth, availableHeight, topPadding, leftPadding, rightPadding и bottomPadding.

palette : palette

Это свойство задаёт палитру, текущую для всплывающего окна.

Всплывающее окно распространяет свойства палитры на свои дочерние элементы. Если вы измените определённое свойство палитры всплывающего окна, это свойство будет распространено на все дочерние элементы всплывающего окна, перезаписывая любые системные значения по умолчанию для этого свойства.

Popup {
    palette.text: "red"

    Column {
        Label {
            text: qsTr("This will use red color...")
        }

        Switch {
            text: qsTr("... and so will this")
        }
    }
}

Это свойство было введено в QtQuick.Controls 2.3 (Qt 5.10).

См. также Control::palette, ApplicationWindow::palette и палитры QML.

parent : Item

Это свойство задаёт родительский элемент.

rightMargin : real

Это свойство задаёт расстояние между правым краем всплывающего окна и правым краем его окна.

Всплывающее окно с отрицательным отступом справа не будет смещено за правый край окружающего окна. Значение по умолчанию — -1.

См. также margins, leftMargin и Макет всплывающего окна.

rightPadding : real

Это свойство задаёт отступ справа.

Свойства отступа используются для управления геометрией элемента содержимого content item.

Всплывающее окно использует тот же подход к отступам, что и Control. Визуальное объяснение системы отступов можно найти в разделе Макет элемента управления документации.

См. также padding, leftPadding и availableWidth.

scale : real

Это свойство задаёт коэффициент масштабирования всплывающего окна. Значение по умолчанию — 1.0.

Масштаб меньше 1.0 приводит к отображению всплывающего окна в меньшем размере, а масштаб больше 1.0 — в большем размере. Отрицательный масштаб приводит к отображению всплывающего окна с зеркальным отображением.

spacing : real

Это свойство задаёт интервал.

Интервал полезен для всплывающих окон, имеющих несколько или повторяющиеся составные блоки. Например, некоторые стили используют интервал для определения расстояния между заголовком, содержимым и подвалом диалогового окна Dialog. Интервал не навязывается всплывающим окном, поэтому каждый стиль может интерпретировать его по-разному, и некоторые могут его вообще игнорировать.

Это свойство было введено в QtQuick.Controls 2.1 (Qt 5.8).

topMargin : real

Это свойство задаёт расстояние между верхним краем всплывающего окна и верхним краем его окна.

Всплывающее окно с отрицательным отступом сверху не будет смещено за верхний край окружающего окна. Значение по умолчанию — -1.

См. также margins, bottomMargin и Макет всплывающего окна.

topPadding : real

Это свойство задаёт верхний отступ.

Свойства отступа используются для управления геометрией элемента содержимого content item.

Всплывающее окно использует тот же подход к отступам, что и Control. Визуальное объяснение системы отступов можно найти в разделе Макет элемента управления документации.

См. также padding, bottomPadding и availableHeight.

transformOrigin : enumeration

Это свойство задаёт точку начала преобразований в анимациях входа и выхода.

Доступны девять точек начала преобразований, как показано на изображении ниже. Значение начала преобразования по умолчанию — Popup.Center.

См. также enter, exit и Item::transformOrigin.

visible : bool

Это свойство определяет, видимый ли всплывающий элемент. Значение по умолчанию равно false.

См. также open(), close() и opened.

width : real

Это свойство определяет ширину всплывающего элемента.

x : real

Это свойство определяет координату x всплывающего элемента.

См. также y и z.

y : real

Это свойство определяет координату y всплывающего элемента.

См. также x и z.

z : real

Это свойство определяет значение z всплывающего элемента. Значение z определяет порядок следования всплывающих элементов.

Если у двух видимых всплывающих элементов одинаковое значение z, сверху будет тот, который был открыт последним.

Значение z по умолчанию равно 0.

См. также x и y.

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

void aboutToHide()

Этот сигнал испускается, когда всплывающий элемент собирается скрыть.

См. также closed().

void aboutToShow()

Этот сигнал испускается, когда всплывающий элемент собирается показать.

См. также opened().

void closed()

Этот сигнал испускается, когда всплывающий элемент закрывается.

См. также aboutToHide().

void opened()

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

См. также aboutToShow().

Документация по методам

void close()

Закрывает всплывающий элемент.

См. также visible.

forceActiveFocus(reason = Qt.OtherFocusReason)

Вынуждает активное получение фокуса всплывающим элементом с указанным reason.

Этот метод устанавливает фокус на всплывающем элементе и гарантирует, что все родительские объекты FocusScope в иерархии объектов также получают focus.

См. также activeFocus и Qt::FocusReason.

void open()

Открывает всплывающий элемент.

См. также visible.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qml-qtquick-controls2-popup.html

Spec-Zone.ru

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