Тип QML Popup
Базовый тип элементов пользовательского интерфейса, похожих на всплывающие окна. Подробнее...
| Заявление об импорте: | import QtQuick.Controls 2.4 |
| С момента: | Qt 5.7 |
| Наследует: | |
| Наследуется от: |
Свойства
- 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_MARKERleftMargin : 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 : real
Это свойство определяет координату y всплывающего элемента.
z : real
Это свойство определяет значение z всплывающего элемента. Значение z определяет порядок следования всплывающих элементов.
Если у двух видимых всплывающих элементов одинаковое значение z, сверху будет тот, который был открыт последним.
Значение z по умолчанию равно 0.
Документация по сигналам
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