Тип QML Popup
Базовый тип элементов управления пользовательским интерфейсом, похожих на всплывающие окна. Подробнее...
| Заявление об импорте: | import QtQuick.Controls 2.5 |
| С момента: | Qt 5.7 |
| Наследует: | |
| Наследуется: |
Свойства
- activeFocus : bool
- anchors.centerIn : Объект
- availableHeight : вещественное число
- availableWidth : вещественное число
- background : Элемент
- bottomInset : вещественное число
- bottomMargin : вещественное число
- bottomPadding : вещественное число
- clip : bool
- closePolicy : перечисление
- contentChildren : список<Элемент>
- contentData : список<Объект>
- contentHeight : вещественное число
- contentItem : Элемент
- contentWidth : вещественное число
- dim : bool
- enabled : bool
- enter : Переход
- exit : Переход
- focus : bool
- font : шрифт
- height : вещественное число
- horizontalPadding : вещественное число
- implicitBackgroundHeight : вещественное число
- implicitBackgroundWidth : вещественное число
- implicitContentHeight : вещественное число
- implicitContentWidth : вещественное число
- implicitHeight : вещественное число
- implicitWidth : вещественное число
- leftInset : вещественное число
- leftMargin : вещественное число
- leftPadding : вещественное число
- locale : Локаль
- margins : вещественное число
- mirrored : bool
- modal : bool
- opacity : вещественное число
- opened : bool
- padding : вещественное число
- palette : палитра
- parent : Элемент
- rightInset : вещественное число
- rightMargin : вещественное число
- rightPadding : вещественное число
- scale : вещественное число
- spacing : вещественное число
- topInset : вещественное число
- topMargin : вещественное число
- topPadding : вещественное число
- transformOrigin : перечисление
- verticalPadding : вещественное число
- visible : bool
- width : вещественное число
- x : вещественное число
- y : вещественное число
- z : вещественное число
Сигналы
- 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.12
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 всплывающего окна обычно основаны на неявных размерах элемента фона и элемента содержимого плюс любые отступы и отступы. Эти свойства определяют, каким будет размер всплывающего окна, если не указаны явные значения width или height.
Геометрия элемента contentItem определяется отступами. В следующем примере выделены отступы в 10 пикселей между границами всплывающего окна и его содержимым:
Popup {
padding: 10
contentItem: Text {
text: "Content"
}
} Элемент background заполняет всю ширину и высоту всплывающего окна, если не указаны отступы или явный размер.
Отрицательные отступы могут быть использованы для увеличения размера фона по сравнению с размером всплывающего окна. В следующем примере используются отрицательные отступы для размещения тени за пределами границ всплывающего окна:
Popup {
topInset: -2
leftInset: -2
rightInset: -6
bottomInset: -6
background: BorderImage {
source: ":/images/shadowed-background.png"
}
} Изменение размера 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
Аналогично элементам в Qt Quick, координаты x и y Popup относительны к его родителю. Это означает, что открытие всплывающего окна, являющегося дочерним элементом Button, например, приведет к размещению всплывающего окна относительно кнопки.
В следующем примере используется свойство Overlay.overlay, присоединенное к всплывающему окну, для размещения его в центре окна, несмотря на положение кнопки, которая открывает всплывающее окно:
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
}
} Другой способ центрировать всплывающее окно в окне независимо от его родительского элемента — использовать anchors.centerIn:
ApplicationWindow {
id: window
// ...
Pane {
// ...
Popup {
anchors.centerIn: Overlay.overlay
}
}
} Чтобы убедиться, что всплывающее окно расположено в пределах границ окружающего окна, свойство margins можно задать ненулевым положительным значением.
См. также Всплывающие элементы управления, Настройка всплывающего окна и ApplicationWindow.
Документация по свойствам
[только для чтения] activeFocus : bool
Это свойство содержит значение, определяющее, имеет ли всплывающее окно активный фокус.
См. также focus и Фокус клавиатуры в Qt Quick.
anchors.centerIn : Object
Якоря предоставляют способ позиционирования элемента, задавая его отношение к другим элементам.
Распространённый случай — центрирование всплывающего окна в его родительском элементе. Один из способов сделать это — с помощью свойств x и y. Якоря предлагают более удобный подход:
Pane {
// ...
Popup {
anchors.centerIn: parent
}
} Также можно центрировать всплывающее окно в окне, используя Overlay:
ApplicationWindow {
id: window
// ...
Pane {
// ...
Popup {
anchors.centerIn: Overlay.overlay
}
}
} Это упрощает центрирование всплывающего окна в окне из любого компонента.
Примечание: Всплывающие окна могут быть центрированы только в пределах своего непосредственного родителя или наложения окна; попытка центрирования в других элементах приведет к предупреждению.
Это свойство было добавлено в QtQuick.Controls 2.5 (Qt 5.12).
См. также Позиционирование всплывающего окна и Item::anchors.
[только для чтения] availableHeight : real
Это свойство содержит высоту, доступную для элемента contentItem после вычитания вертикального отступа из высоты всплывающего окна.
См. также padding, topPadding и bottomPadding.
[только для чтения] availableWidth : real
Это свойство содержит ширину, доступную для элемента contentItem после вычитания горизонтального отступа из ширины всплывающего окна.
См. также padding, leftPadding и rightPadding.
background : Item
Это свойство содержит элемент фона.
Примечание: Если элемент фона не имеет явно заданного размера, он автоматически следует за размером всплывающего окна. В большинстве случаев нет необходимости указывать ширину или высоту для элемента фона.
Примечание: Большинство всплывающих окон используют неявный размер элемента фона для вычисления неявного размера самого всплывающего окна. Если вы замените элемент фона пользовательским элементом, вы также должны рассмотреть возможность предоставления разумного неявного размера для него (если это не элемент, такой как Image, который имеет свой собственный неявный размер).
См. также Настройка всплывающего окна.
bottomInset : real
Это свойство содержит нижний отступ для фона.
Это свойство было добавлено в QtQuick.Controls 2.5 (Qt 5.12).
См. также Макет всплывающего окна и topInset.
bottomMargin : real
Это свойство содержит расстояние между нижним краем всплывающего окна и нижним краем его окна.
Всплывающее окно с отрицательным нижним отступом не выводится за пределы нижнего края окружающего окна. Значение по умолчанию — -1.
См. также margins, topMargin и Макет всплывающего окна.
bottomPadding : real
Это свойство содержит нижний отступ. Если явно не задано, значение равно verticalPadding.
Свойства отступа используются для управления геометрией элемента content item.
Всплывающее окно использует тот же подход к отступам, что и Control. Визуальное объяснение системы отступов см. в разделе Макет элемента управления документации.
См. также padding, topPadding, verticalPadding и availableHeight.
clip : bool
Это свойство содержит значение, определяющее, включено ли обрезка. Значение по умолчанию — false.
closePolicy : enumeration
Это свойство определяет обстоятельства, при которых всплывающее окно закрывается. Флаги могут быть объединены, чтобы разрешить несколько способов закрытия всплывающего окна.
Доступные значения:
| Постоянная | Описание |
|---|---|
Popup.NoAutoClose |
Всплывающее окно будет закрываться только при явном указании. |
Popup.CloseOnPressOutside |
Всплывающее окно будет закрываться при нажатии мыши за его пределами. |
Popup.CloseOnPressOutsideParent |
Всплывающее окно будет закрываться при нажатии мыши за пределами его родителя. |
Popup.CloseOnReleaseOutside |
Всплывающее окно будет закрываться при отпускании мыши за его пределами. |
Popup.CloseOnReleaseOutsideParent |
Всплывающее окно будет закрываться при отпускании мыши за пределами его родителя. |
Popup.CloseOnEscape |
Всплывающее окно будет закрываться при нажатии клавиши Escape, если всплывающее окно имеет активный фокус. |
Значение по умолчанию — Popup.CloseOnEscape | Popup.CloseOnPressOutside.
Примечание: Существует известное ограничение, что политики Popup.CloseOnReleaseOutside и Popup.CloseOnReleaseOutsideParent работают только с всплывающими окнами modal.
Это свойство содержит список дочерних элементов содержимого.
Список содержит все элементы, объявленные в QML как дочерние элементы всплывающего окна.
Примечание: В отличие от contentData, contentChildren не включает невидимые объекты QML.
См. также Item::children и contentData.
[по умолчанию] contentData : list<Object>
Это свойство содержит список данных содержимого.
Список содержит все объекты, объявленные в QML как дочерние элементы всплывающего окна.
Примечание: В отличие от contentChildren, contentData включает невидимые объекты QML.
См. также Item::data и contentChildren.
contentHeight : real
Это свойство содержит высоту содержимого. Оно используется для вычисления общей неявной высоты всплывающего окна.
Дополнительную информацию см. в Размер всплывающего окна.
См. также contentWidth.
contentItem : Item
Это свойство содержит элемент содержимого всплывающего окна.
Элемент содержимого — это визуальная реализация всплывающего окна. Когда всплывающее окно становится видимым, элемент содержимого автоматически переродится в элемент наложения.
Примечание: Элемент содержимого автоматически изменяет размер, чтобы поместиться в пределах отступа padding всплывающего окна.
Примечание: Большинство всплывающих окон используют неявный размер элемента содержимого для расчета неявного размера самого всплывающего окна. Если вы замените элемент содержимого пользовательским элементом, вы также должны рассмотреть возможность предоставления разумного неявного размера для него (если это не элемент, подобный Text, у которого есть свой собственный неявный размер).
См. также Настройка всплывающего окна.
contentWidth : real
Это свойство содержит ширину содержимого. Оно используется для вычисления общей неявной ширины всплывающего окна.
Дополнительную информацию см. в Размер всплывающего окна.
См. также contentHeight.
dim : bool
Это свойство содержит значение, определяющее, затемняет ли всплывающее окно фон.
Если свойство не установлено явно, оно наследует значение свойства modal. Чтобы вернуться к значению по умолчанию, установите это свойство в значение undefined.
См. также modal и Overlay.modeless.
enabled : bool
Это свойство указывает, включен ли всплывающее окно. Значение по умолчанию равно true.
Это свойство было введено в QtQuick.Controls 2.3 (Qt 5.10).
См. также visible и Item::enabled.
enter : Transition
Это свойство содержит анимацию, применяемую к элементу всплывающего окна при его открытии.
Следующий пример анимирует непрозрачность всплывающего окна при его открытии:
Popup {
enter: Transition {
NumberAnimation { property: "opacity"; from: 0.0; to: 1.0 }
}
} См. также exit.
exit : Transition
Это свойство содержит анимацию, применяемую к элементу всплывающего окна при его закрытии.
Следующий пример анимирует непрозрачность всплывающего окна при его закрытии:
Popup {
exit: Transition {
NumberAnimation { property: "opacity"; from: 1.0; to: 0.0 }
}
} См. также enter.
focus : bool
Это свойство указывает, хочет ли всплывающее окно фокус.
Когда всплывающее окно получает фокус, свойство activeFocus будет true. Дополнительную информацию см. в разделе Фокус клавиатуры в Qt Quick.
Значение по умолчанию — false.
См. также activeFocus.
font : 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
Это свойство содержит высоту всплывающего окна.
horizontalPadding : real
Это свойство содержит горизонтальный отступ. Если не задано явно, значение равно padding.
Свойства отступа используются для управления геометрией элемента content item.
Всплывающее окно использует тот же подход к отступам, что и Control. Визуальное объяснение системы отступов см. в разделе Control Layout документации.
Это свойство было введено в QtQuick.Controls 2.5 (Qt 5.12).
См. также padding, leftPadding, rightPadding и verticalPadding.
[только для чтения] implicitBackgroundHeight : real
Это свойство содержит неявную высоту фона.
Значение равно background ? background.implicitHeight : 0.
Это свойство было введено в QtQuick.Controls 2.5 (Qt 5.12).
См. также implicitBackgroundWidth и implicitContentHeight.
[только для чтения] implicitBackgroundWidth : real
Это свойство содержит неявную ширину фона.
Значение равно background ? background.implicitWidth : 0.
Это свойство было введено в QtQuick.Controls 2.5 (Qt 5.12).
См. также implicitBackgroundHeight и implicitContentWidth.
[только для чтения] implicitContentHeight : real
Это свойство содержит неявную высоту содержимого.
Значение вычисляется на основе дочерних элементов содержимого.
Это свойство было введено в QtQuick.Controls 2.5 (Qt 5.12).
См. также implicitContentWidth и implicitBackgroundHeight.
[только для чтения] implicitContentWidth : real
Это свойство содержит неявную ширину содержимого.
Значение вычисляется на основе дочерних элементов содержимого.
Это свойство было введено в QtQuick.Controls 2.5 (Qt 5.12).
См. также implicitContentHeight и implicitBackgroundWidth.
implicitHeight : real
Это свойство содержит неявную высоту всплывающего окна.
implicitWidth : real
Это свойство содержит неявную ширину всплывающего окна.
leftInset : real
Это свойство содержит левый отступ фона.
Это свойство было введено в QtQuick.Controls 2.5 (Qt 5.12).
См. также Макет всплывающего окна и rightInset.
leftMargin : real
Это свойство содержит расстояние между левым краем всплывающего окна и левым краем его окна.
Всплывающее окно с отрицательным левым отступом не смещается внутрь левого края содержащего окна. Значение по умолчанию — -1.
См. также margins, rightMargin и Макет всплывающего окна.
leftPadding : real
Это свойство содержит левый отступ. Если не задано явно, значение равно horizontalPadding.
Свойства отступа используются для управления геометрией элемента content item.
Всплывающее окно использует тот же подход к отступам, что и Control. Визуальное объяснение системы отступов см. в разделе Control Layout документации.
См. также padding, rightPadding, horizontalPadding и 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. По умолчанию значение closePolicy равно Popup.CloseOnEscape | Popup.CloseOnPressOutside, что означает, что клик вне модального всплывающего окна закроет его.
Значение по умолчанию равно false.
См. также dim.
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
Это свойство задает значение отступа по умолчанию.
Свойства отступа используются для управления геометрией элемента содержимого.
Всплывающее окно использует тот же подход к отступам, что и 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 Basic Type.
parent : Item
Это свойство содержит родительский элемент.
rightInset : real
Это свойство содержит правый отступ для фона.
Это свойство было добавлено в QtQuick.Controls 2.5 (Qt 5.12).
См. также Макет всплывающего окна и leftInset.
rightMargin : real
Это свойство содержит расстояние между правым краем всплывающего окна и правым краем его окна.
Всплывающее окно с отрицательным правым отступом не выводится внутри правого края окружающего окна. Значение по умолчанию равно -1.
См. также margins, leftMargin и Макет всплывающего окна.
rightPadding : real
Это свойство содержит правый отступ. Если не задано явно, значение равно horizontalPadding.
Свойства отступа используются для управления геометрией элемента содержимого.
Всплывающее окно использует тот же подход к отступам, что и Control. Для визуального объяснения системы отступов см. раздел Макет элементов управления документации.
См. также padding, leftPadding, horizontalPadding и availableWidth.
scale : real
Это свойство содержит коэффициент масштабирования всплывающего окна. Значение по умолчанию равно 1.0.
Масштаб меньше 1.0 приводит к отображению всплывающего окна в меньшем размере, а масштаб больше 1.0 — в большем. Отрицательные масштабы не поддерживаются.
spacing : real
Это свойство содержит расстояние между элементами.
Расстояние полезно для всплывающих окон, содержащих несколько или повторяющихся блоков. Например, некоторые стили используют расстояние для определения расстояния между заголовком, содержимым и подвалом Dialog. Расстояние не накладывается всплывающим окном, поэтому каждый стиль может интерпретировать его по-разному, а некоторые могут его игнорировать.
Это свойство было добавлено в QtQuick.Controls 2.1 (Qt 5.8).
topInset : real
Это свойство содержит верхний отступ для фона.
Это свойство было добавлено в QtQuick.Controls 2.5 (Qt 5.12).
См. также Макет всплывающего окна и bottomInset.
topMargin : real
Это свойство содержит расстояние между верхним краем всплывающего окна и верхним краем его окна.
Всплывающее окно с отрицательным верхним отступом не выводится внутри верхнего края окружающего окна. Значение по умолчанию равно -1.
См. также margins, bottomMargin и Макет всплывающего окна.
topPadding : real
Это свойство содержит верхний отступ. Если не задано явно, значение равно verticalPadding.
Свойства отступа используются для управления геометрией элемента содержимого.
Всплывающее окно использует тот же подход к отступам, что и Control. Для визуального объяснения системы отступов см. раздел Макет элементов управления документации.
См. также padding, bottomPadding, verticalPadding и availableHeight.
transformOrigin : enumeration
Это свойство задает точку начала трансформаций в анимациях открытия и закрытия.
Доступно девять точек начала трансформаций, как показано на изображении ниже. Значение по умолчанию — Popup.Center.
См. также enter, exit и Item::transformOrigin.
verticalPadding : real
Это свойство задаёт вертикальный отступ. Если не задано явно, значение равно padding.
Свойства отступа используются для управления геометрией элемента содержимого.
Всплывающее окно использует тот же подход к отступам, что и Control. Для визуального объяснения системы отступов см. раздел Макет элементов управления документации.
Это свойство было добавлено в QtQuick.Controls 2.5 (Qt 5.12).
См. также padding, topPadding, bottomPadding и horizontalPadding.
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 в иерархии объектов также получат фокус.
См. также 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.13/qml-qtquick-controls2-popup.html