Тип QML Popup
Базовый тип элементов пользовательского интерфейса, похожих на всплывающие окна. Подробнее...
| Заявление об импорте: | import QtQuick.Controls 2.15 |
| С момента: | Qt 5.7 |
| Наследует: | |
| Наследуется от: |
Свойства
- activeFocus : bool
- anchors.centerIn : Объект
- availableHeight : real
- availableWidth : real
- background : Элемент
- bottomInset : real
- bottomMargin : real
- bottomPadding : real
- clip : bool
- closePolicy : перечисление
- contentChildren : список<Элемент>
- contentData : список<Объект>
- contentHeight : real
- contentItem : Элемент
- contentWidth : real
- dim : bool
- enabled : bool
- enter : Переход
- exit : Переход
- focus : bool
- font : шрифт
- height : real
- horizontalPadding : real
- implicitBackgroundHeight : real
- implicitBackgroundWidth : real
- implicitContentHeight : real
- implicitContentWidth : real
- implicitHeight : real
- implicitWidth : real
- leftInset : real
- leftMargin : real
- leftPadding : real
- locale : Локаль
- margins : real
- mirrored : bool
- modal : bool
- opacity : real
- opened : bool
- padding : real
- palette : палитра
- parent : Элемент
- rightInset : real
- rightMargin : real
- rightPadding : real
- scale : real
- spacing : real
- topInset : real
- topMargin : real
- topPadding : real
- transformOrigin : перечисление
- verticalPadding : real
- visible : bool
- width : real
- x : real
- y : real
- z : real
Сигналы
- void aboutToHide()
- void aboutToShow()
- void closed()
- void opened()
Методы
- void close()
- forceActiveFocus(перечисление reason)
- 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).
См. также Позиционирование всплывающих окон и якоря.
[только для чтения] 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.
См. также отступы, topMargin и Макет всплывающего окна.
bottomPadding : real
Это свойство содержит нижний отступ. Если не указано явно, значение равно verticalPadding.
Свойства отступов используются для управления геометрией элемента содержимого.
Всплывающее окно использует тот же подход к отступам, что и Control. Для визуального объяснения системы отступов см. раздел Макет элемента управления документации.
См. также padding, topPadding, verticalPadding и 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 : список<Item>
Это свойство содержит список дочерних элементов содержимого.
Список содержит все элементы, объявленные в QML как дочерние элементы всплывающего окна.
Примечание: В отличие от contentData, contentChildren не включает невизуальные объекты QML.
См. также Item::children и contentData.
[по умолчанию] contentData : список<Объект>
Это свойство содержит список данных содержимого.
Список содержит все объекты, объявленные в QML как дочерние элементы всплывающего окна.
Примечание: В отличие от contentChildren, contentData включает невизуальные объекты QML.
См. также Item::data и contentChildren.
contentHeight : real
Это свойство содержит высоту содержимого. Оно используется для расчета общей неявной высоты всплывающего окна.
Дополнительную информацию см. в размере всплывающего окна.
См. также contentWidth.
contentItem : Item
Это свойство содержит элемент содержимого всплывающего окна.
Элемент содержимого — это визуальное представление всплывающего окна. Когда всплывающее окно становится видимым, элемент содержимого автоматически переназначается родительскому элементу overlay.
Примечание: Элемент содержимого автоматически масштабируется для размещения внутри отступов всплывающего окна.
Примечание: Большинство всплывающих окон используют неявные размеры элемента содержимого для расчета неявных размеров самого всплывающего окна. Если вы замените элемент содержимого пользовательским, вы также должны рассмотреть предоставление разумных неявных размеров для него (если это не элемент, например, 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.
Свойства отступа используются для управления геометрией элемента содержимого.
Всплывающее окно использует тот же подход к отступам, что и Control. Визуальное объяснение системы отступов см. в разделе Макет элементов управления документации.
Это свойство было введено в 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.
См. также отступы, rightMargin и Макет всплывающего окна.
leftPadding : real
Это свойство содержит левый отступ. Если не задано явно, значение равно horizontalPadding.
Свойства отступа используются для управления геометрией элемента содержимого.
Всплывающее окно использует тот же подход к отступам, что и Control. Визуальное объяснение системы отступов см. в разделе Макет элементов управления документации.
См. также 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
Это свойство содержит значение по умолчанию отступа.
Свойства отступа используются для управления геометрией элемента содержимого content item.
Всплывающее окно использует тот же подход к отступам, что и Control. Визуальное объяснение системы отступов представлено в разделе Control Layout документации.
См. также 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 и palette QML Basic Type.
parent : Item
Это свойство содержит родительский элемент.
rightInset : real
Это свойство содержит правый отступ для фона.
Это свойство было добавлено в QtQuick.Controls 2.5 (Qt 5.12).
См. также Макет всплывающего окна и leftInset.
rightMargin : real
Это свойство содержит расстояние между правым краем всплывающего окна и правым краем его окна.
Всплывающее окно с отрицательным правым отступом не сдвигается к правому краю содержащего его окна. Значение по умолчанию — -1.
См. также отступы, leftMargin и Макет всплывающего окна.
rightPadding : real
Это свойство содержит правый отступ. Если не задано явно, значение равно horizontalPadding.
Свойства отступа используются для управления геометрией элемента содержимого content item.
Всплывающее окно использует тот же подход к отступам, что и Control. Визуальное объяснение системы отступов представлено в разделе Control Layout документации.
См. также 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.
См. также отступы, bottomMargin и Макет всплывающего окна.
topPadding : real
Это свойство содержит верхний отступ. Если не задано явно, значение равно verticalPadding.
Свойства отступа используются для управления геометрией элемента содержимого content item.
Всплывающее окно использует тот же подход к отступам, что и Control. Визуальное объяснение системы отступов представлено в разделе Control Layout документации.
См. также padding, bottomPadding, verticalPadding и availableHeight.
transformOrigin : enumeration
Это свойство содержит точку начала преобразований при переходах enter и exit.
Доступны девять точек начала преобразований, как показано на рисунке ниже. Значение по умолчанию — Popup.Center.
См. также enter, exit и Item::transformOrigin.
verticalPadding : real
Это свойство содержит вертикальный отступ. Если не задано явно, значение равно padding.
Свойства отступа используются для управления геометрией элемента содержимого content item.
Всплывающее окно использует тот же подход к отступам, что и Control. Визуальное объяснение системы отступов представлено в разделе Control Layout документации.
Это свойство было добавлено в 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()
Этот сигнал испускается, когда всплывающее окно собирается скрыться.
Примечание: Соответствующий обработчик — onAboutToHide.
См. также closed().
void aboutToShow()
Этот сигнал испускается, когда всплывающее окно собирается отобразиться.
Примечание: Соответствующий обработчик — onAboutToShow.
См. также opened().
void closed()
Этот сигнал испускается, когда всплывающее окно закрыто.
Примечание: Соответствующий обработчик — onClosed.
См. также aboutToHide().
void opened()
Этот сигнал испускается, когда всплывающее окно открыто.
Примечание: Соответствующий обработчик — onOpened.
См. также aboutToShow().
Документация методов
void close()
Закрывает всплывающее окно.
См. также visible.
forceActiveFocus(enumeration 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.15/qml-qtquick-controls2-popup.html