Тип QML Popup
Базовый тип элементов управления пользовательским интерфейсом, похожих на всплывающие окна. Подробнее...
| Заявление об импорте: | import QtQuick.Controls 2.2 |
| С момента: | Qt 5.7 |
| Наследует: | |
| Наследуется: |
Свойства
- activeFocus : bool
- availableHeight : real
- availableWidth : real
- background : Item
- bottomMargin : real
- bottomPadding : real
- clip : bool
- closePolicy : перечисление
- contentChildren : список<Item>
- contentData : список<Object>
- contentHeight : real
- contentItem : Item
- contentWidth : real
- dim : bool
- enter : Переход
- exit : Переход
- focus : bool
- font : шрифт
- height : real
- implicitHeight : real
- implicitWidth : real
- leftMargin : real
- leftPadding : real
- locale : Локаль
- margins : real
- modal : bool
- opacity : real
- padding : real
- 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()
- void forceActiveFocus(reason)
- 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 {
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, Настройка Popup и ApplicationWindow.
Документация по свойствам
[только для чтения] activeFocus : bool
Это свойство указывает, имеет ли всплывающее окно активный фокус.
См. также focus и Фокус клавиатуры в Qt Quick.
[только для чтения] availableHeight : real
Это свойство содержит высоту, доступную для элемента contentItem, после вычитания вертикального отступа из высоты всплывающего окна.
См. также padding, topPadding и bottomPadding.
[только для чтения] availableWidth : real
Это свойство содержит ширину, доступную для элемента contentItem, после вычитания горизонтального отступа из ширины всплывающего окна.
См. также padding, leftPadding и rightPadding.
background : Item
Это свойство содержит элемент фона.
Примечание: Если элемент фона не имеет явных размеров, он автоматически соответствует размерам всплывающего окна. В большинстве случаев нет необходимости указывать ширину или высоту для элемента фона.
Примечание: Большинство всплывающих окон используют неявный размер элемента фона для расчета неявного размера самого всплывающего окна. Если вы замените элемент фона пользовательским, вы также должны учесть предоставление разумного неявного размера для него (если это не элемент, как Изображение, у которого есть собственный неявный размер).
См. также Настройка всплывающего окна.
bottomMargin : вещественное
Это свойство содержит расстояние между нижним краем всплывающего окна и нижним краем его окна.
Всплывающее окно с отрицательным нижним отступом не сдвигается внутри нижнего края содержащего окна. Значение по умолчанию равно -1.
См. также отступы, верхний отступ и Макет всплывающего окна.
bottomPadding : вещественное
Это свойство содержит нижний отступ.
Свойства отступов используются для управления геометрией элемента содержимого.
Всплывающее окно использует тот же подход к отступам, что и элемент управления. Для визуального объяснения системы отступов см. раздел Макет элемента управления документации.
См. также отступ, верхний отступ и доступная высота.
clip : логическое
Это свойство определяет, включено ли обрезка. Значение по умолчанию равно 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 : вещественное
Это свойство содержит высоту содержимого. Оно используется для расчета общей неявной высоты всплывающего окна.
Дополнительную информацию см. в разделе Размеры всплывающего окна.
См. также contentWidth.
contentItem : Элемент
Это свойство содержит элемент содержимого всплывающего окна.
Элемент содержимого является визуальной реализацией всплывающего окна. Когда всплывающее окно становится видимым, элемент содержимого автоматически переназначается родительскому элементу наложения окна приложения.
Примечание: Элемент содержимого автоматически изменяет размер, чтобы поместиться в отступы всплывающего окна.
Примечание: Большинство всплывающих окон используют неявный размер элемента содержимого для расчета неявного размера самого всплывающего окна. Если вы замените элемент содержимого пользовательским, вы также должны учесть предоставление разумного неявного размера для него (если это не элемент, как Текст, у которого есть собственный неявный размер).
См. также Настройка всплывающего окна.
contentWidth : вещественное
Это свойство содержит ширину содержимого. Оно используется для расчета общей неявной ширины всплывающего окна.
Дополнительную информацию см. в разделе Размеры всплывающего окна.
См. также contentHeight.
dim : логическое
Это свойство определяет, затемняет ли всплывающее окно фон.
Если явно не указано иное, это свойство следует значению модального. Чтобы вернуться к значению по умолчанию, установите это свойство в undefined.
См. также модальный.
enter : Переход
Это свойство содержит переход, который применяется к элементу всплывающего окна при открытии всплывающего окна и входе на экран.
Следующий пример анимирует непрозрачность всплывающего окна при входе на экран:
Popup {
enter: Transition {
NumberAnimation { property: "opacity"; from: 0.0; to: 1.0 }
}
} См. также выход.
exit : Переход
Это свойство содержит переход, который применяется к элементу всплывающего окна при закрытии всплывающего окна и выходе со страницы.
Следующий пример анимирует непрозрачность всплывающего окна при выходе со страницы:
Popup {
exit: Transition {
NumberAnimation { property: "opacity"; from: 1.0; to: 0.0 }
}
} См. также вход.
focus : логическое
Это свойство определяет, хочет ли всплывающее окно получить фокус.
Когда всплывающее окно фактически получает фокус, 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 : вещественное
Это свойство содержит высоту всплывающего окна.
implicitHeight : вещественное
Это свойство содержит неявную высоту всплывающего окна.
implicitWidth : вещественное
Это свойство содержит неявную ширину всплывающего окна.
leftMargin : вещественное
Это свойство содержит расстояние между левым краем всплывающего окна и левым краем его окна.
Всплывающее окно с отрицательным левым отступом не сдвигается внутри левого края содержащего окна. Значение по умолчанию — -1.
См. также отступы, правый отступ и Макет всплывающего окна.
leftPadding : вещественное
Это свойство содержит левый отступ.
Свойства отступов используются для управления геометрией элемента содержимого.
Всплывающее окно использует тот же подход к отступам, что и элемент управления. Для визуального объяснения системы отступов см. раздел Макет элемента управления документации.
См. также отступ, правый отступ и доступная ширина.
locale : Локаль
Это свойство содержит локаль всплывающего окна.
См. также LayoutMirroring.
margins : real
Это свойство определяет расстояние между краями всплывающего окна и краями его окна-контейнера.
Всплывающее окно с отрицательными отступами не будет смещаться за пределы содержащего его окна. Значение по умолчанию — -1.
См. также topMargin, leftMargin, rightMargin, bottomMargin и Макет всплывающего окна.
modal : bool
Это свойство определяет, является ли всплывающее окно модальным.
Модальные всплывающие окна часто имеют характерный эффект затемнения фона, определённый в overlay.modal, и не пропускают события нажатия и отпускания на элементы, расположенные под ними.
На настольных платформах модальные всплывающие окна обычно закрываются только при нажатии клавиши Escape. Чтобы добиться этого поведения, установите closePolicy в значение Popup.CloseOnEscape.
Значение по умолчанию — false.
opacity : real
Это свойство определяет непрозрачность всплывающего окна. Непрозрачность задаётся числом от 0.0 (полностью прозрачное) до 1.0 (полностью непрозрачное). Значение по умолчанию — 1.0.
См. также visible.
padding : real
Это свойство определяет отступ по умолчанию.
Свойства отступа используются для управления геометрией элемента содержимого content item.
Всплывающее окно использует тот же подход к отступам, что и Control. Визуальное объяснение системы отступов можно найти в разделе Макет элементов управления документации.
См. также availableWidth, availableHeight, topPadding, leftPadding, rightPadding и bottomPadding.
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. Интервал не навязывается классом Popup, поэтому каждый стиль может интерпретировать его по-разному, а некоторые могут его полностью игнорировать.
Это свойство QML было введено в 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.
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.
void 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/qt-5.9/qml-qtquick-controls2-popup.html