Popup QML Type
弹出式用户界面控件的基本类型。更多
Import Statement: | import QtQuick.Controls |
Inherits: | |
Inherited By: |
属性
- activeFocus : bool
- anchors.centerIn : Item
(since QtQuick.Controls 2.5 (Qt 5.12))
- availableHeight : real
- availableWidth : real
- background : Item
- bottomInset : real
(since QtQuick.Controls 2.5 (Qt 5.12))
- bottomMargin : real
- bottomPadding : real
- clip : bool
- closePolicy : enumeration
- contentChildren : list<Item>
- contentData : list<QtObject>
- contentHeight : real
- contentItem : Item
- contentWidth : real
- dim : bool
- enabled : bool
(since QtQuick.Controls 2.3 (Qt 5.10))
- enter : Transition
- exit : Transition
- focus : bool
- font : font
- height : real
- horizontalPadding : real
(since QtQuick.Controls 2.5 (Qt 5.12))
- implicitBackgroundHeight : real
(since QtQuick.Controls 2.5 (Qt 5.12))
- implicitBackgroundWidth : real
(since QtQuick.Controls 2.5 (Qt 5.12))
- implicitContentHeight : real
(since QtQuick.Controls 2.5 (Qt 5.12))
- implicitContentWidth : real
(since QtQuick.Controls 2.5 (Qt 5.12))
- implicitHeight : real
- implicitWidth : real
- leftInset : real
(since QtQuick.Controls 2.5 (Qt 5.12))
- leftMargin : real
- leftPadding : real
- locale : Locale
- margins : real
- mirrored : bool
(since QtQuick.Controls 2.3 (Qt 5.10))
- modal : bool
- opacity : real
- opened : bool
(since QtQuick.Controls 2.3 (Qt 5.10))
- padding : real
- palette : palette
(since QtQuick.Controls 2.3 (Qt 5.10))
- parent : Item
- popupType : enumeration
(since 6.8)
- rightInset : real
(since QtQuick.Controls 2.5 (Qt 5.12))
- rightMargin : real
- rightPadding : real
- scale : real
- spacing : real
(since QtQuick.Controls 2.1 (Qt 5.8))
- topInset : real
(since QtQuick.Controls 2.5 (Qt 5.12))
- topMargin : real
- topPadding : real
- transformOrigin : enumeration
- verticalPadding : real
(since QtQuick.Controls 2.5 (Qt 5.12))
- visible : bool
- width : real
- x : real
- y : real
- z : real
信号
- void aboutToHide()
- void aboutToShow()
- void closed()
- void opened()
方法
- void close()
- forceActiveFocus(enumeration reason)
- void open()
详细说明
Popup 是弹出式用户界面控件的基本类型。它可以与Window 或ApplicationWindow 一起使用。
import QtQuick.Window import QtQuick.Controls 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 } }
Popup 本身不提供布局,但需要您对其内容进行定位,例如通过创建RowLayout 或ColumnLayout 。
声明为弹出式窗口子窗口的项目会自动成为弹出式窗口contentItem 的父窗口。动态创建的项目需要明确地与contentItem 的父级关系。
弹出窗口布局
下图说明了窗口中弹出窗口的布局:
弹出窗口的implicitWidth 和implicitHeight 通常基于背景和内容项的隐式尺寸以及任何嵌入和填充。当没有指定显式width 或height 时,这些属性决定了弹出窗口的大小。
contentItem 的几何尺寸由填充决定。下面的示例在弹出窗口的边界和内容之间保留了 10px 的填充:
Popup { padding: 10 contentItem: Text { text: "Content" } }
background 项目填充了整个弹出窗口的宽度和高度,除非为其指定了嵌套或明确的尺寸。
负嵌套可用于使背景大于弹出窗口。下面的示例使用负内嵌值在弹出窗口的边界外放置阴影:
Popup { topInset: -2 leftInset: -2 rightInset: -6 bottomInset: -6 background: BorderImage { source: ":/images/shadowed-background.png" } }
弹出窗口类型
自 Qt 6.8 起,一些弹出窗口(如Menu )根据平台的不同提供了三种不同的实现。您可以通过设置popupType 来选择您喜欢的类型。
Popup.Item
支持所有平台,但Popup.Window
和Popup.Native
通常只支持桌面平台。此外,如果弹出窗口是Menu 内的native menubar ,菜单也将是本地的。如果菜单是另一个菜单中的子菜单,则由父(或根)菜单决定类型。
将弹出式菜单显示为一个项目
如果将popupType 设置为Popup.Item
,弹出窗口将不会作为单独窗口显示,而是作为与父窗口相同场景中的一个项目显示。此项目的父对象是该场景的overlay ,样式看起来像一个真正的窗口。
在不支持多窗口的平台上,该选项尤其有用。这也是 Qt 6.8 之前的唯一选项。
为了确保弹出窗口显示在场景中其他项目的上方,建议使用ApplicationWindow 。ApplicationWindow 还提供背景调光效果。
以单独窗口显示弹出窗口
通过将popupType 设置为Popup.Window
,弹出窗口将显示在使用Qt::Popup 标志配置的顶层window 内。使用窗口显示弹出窗口的好处是,弹出窗口将浮动在父窗口的顶部,可以放置在其几何形状之外。除此之外,弹出窗口的外观与使用Popup.Item
时相同,也就是说,它将使用与使用Popup.Item
时相同的 QML 委托和样式。
注: 如果平台不支持Popup.Window
,则将使用Popup.Item
作为后备。
显示本地弹出窗口
通过将popupType 设置为Popup.Native
,弹出窗口将使用平台本地弹出窗口显示。该窗口及其所有内容将由平台而非 QML 渲染。这意味着分配给弹出窗口的 QML 委托不会用于渲染。例如,如果在Menu 上使用该选项,它将使用平台特定的菜单 API 实现。这通常会使弹出式菜单的外观和感觉比Popup.Window
等更原生,但同时也会受到平台的限制以及与外观和行为相关的差异。这些限制在受影响的子类(如Menu )中有更详细的说明。
注: 如果平台不支持Popup.Native
,则将使用Popup.Window
作为后备。
弹出窗口大小
如果在弹出式窗口中只使用了一个项目,它将调整大小以适应其所包含项目的隐式大小。这使其特别适合与布局一起使用。
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 items 时,弹出窗口的content item 会被父代到overlay ,而不会位于弹出窗口的父代中。因此,应用于弹出窗口所在树的scale 并不适用于可视弹出窗口。如要使ComboBox 的弹出窗口与组合框的比例一致,则也要对overlay 应用相同的比例:
Window { property double scaleFactor: 2.0 Scale { id: scale xScale: scaleFactor yScale: scaleFactor } Item { id: scaledContent transform: scale ComboBox { id: combobox // ... } } Overlay.overlay.transform: scale }
弹出窗口定位
与Qt Quick 中的项目类似,弹出窗口x 和y 的坐标也是相对于其父窗口的。这就意味着,打开一个作为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 属性设置为非负值。
在弹出窗口前显示非子项目
在不使用popup windows 的情况下,弹出窗口会将其contentItem 的可视化父级设置为窗口的overlay ,以确保弹出窗口显示在场景中所有其他项目的前面。在某些情况下,在弹出窗口前面放置一个项目(如virtual keyboard )可能会很有用。为此,可以将项目的父级设置为覆盖层,并赋予项目正 Z 值。等到弹出窗口打开后,再将项目重新设置为覆盖层的父级,也可以达到同样的效果。
Popup { id: popup visible: true anchors.centerIn: parent margins: 10 closePolicy: Popup.CloseOnEscape ColumnLayout { TextField { placeholderText: qsTr("Username") } TextField { placeholderText: qsTr("Password") echoMode: TextInput.Password } } } InputPanel { parent: Overlay.overlay width: parent.width y: popup.y + popup.topMargin + (window.activeFocusItem?.y ?? 0) + (window.activeFocusItem?.height ?? 0) z: 1 }
弹出窗口转换
自 Qt 5.15.3 起,在退出转换完成后,以下属性将恢复到进入转换前的原始值。
这样,内置样式就可以在这些属性上制作动画,而不会丢失任何明确定义的值。
返回/退出事件处理
默认情况下,如果出现以下情况,弹出窗口将关闭
- 它有activeFocus 、
- 它的closePolicy 是
Popup.CloseOnEscape
,并且 - 用户按下QKeySequence::Cancel 的按键序列(通常是 Escape 键)
要防止这种情况发生,可以
- 不给弹出窗口focus 。
- 将弹出窗口的closePolicy 设置为不包括
Popup.CloseOnEscape
的值。 - 在弹出窗口的子项目中处理Keys'escapePressed 信号,使其在弹出窗口之前收到事件。
属性传播
弹出窗口通过其父窗口而不是对象或可视化父窗口继承字体、调色板和附加属性:
import QtQuick.Controls.Basic ApplicationWindow { width: 500 height: 500 visible: true font.pixelSize: 20 palette.windowText: "steelblue" // This will have a pixelSize of 20 and be "steelblue" in color. header: Label { text: "ApplicationWindow Label" leftPadding: 20 topPadding: 20 } Pane { width: 400 height: 400 anchors.centerIn: parent palette.window: "#edf3f8" palette.windowText: "tomato" // This will have a pixelSize of 20 and be "tomato" in color. Label { text: "Pane Label" } Popup { width: 300 height: 300 anchors.centerIn: parent font.pixelSize: 10 visible: true // This will have a pixelSize of 10 and "steelblue" in color. Label { text: "Popup Label" } Popup { width: 200 height: 200 anchors.centerIn: parent visible: true // This will have a pixelSize of 20 and be "steelblue" in color. Label { text: "Child Popup Label" } } } } }
此外,弹出窗口不会将其属性传播给子弹出窗口。这种行为以Qt Widgets 为模型,其中Qt::Popup
widget 是顶层窗口。顶层窗口不会将其属性传播给子窗口。
某些派生类型(如ComboBox )的典型实现方式是将弹出窗口视为控件不可分割的一部分,因此可以继承附加属性等内容。例如,在Material 样式 ComboBox 中,弹出窗口从ComboBox 本身明确继承了主题和其他附加属性:
popup: T.Popup { // ... Material.theme: control.Material.theme Material.accent: control.Material.accent Material.primary: control.Material.primary }
因此,要确保子弹出窗口具有与其父弹出窗口相同的属性值,请明确设置这些属性:
波兰语 关闭弹出窗口的行为
当弹出窗口关闭时,它没有相关窗口,其子项也没有相关窗口。这意味着在弹出窗口显示之前,任何子项目都不会被polished 。因此,您不能依靠关闭的Popup
中的ListView 来更新其count
属性:
import QtQuick import QtQuick.Controls ApplicationWindow { width: 640 height: 480 visible: true SomeModel { id: someModel } Button { text: view.count onClicked: popup.open() } Popup { id: popup width: 400 height: 400 contentItem: ListView { id: view model: someModel delegate: Label { text: display required property string display } } } }
在上面的示例中,当弹出窗口关闭时,在component completion 之后向someModel
添加或删除行时,按钮的文本将不会更新。
相反,可以在SomeModel
中添加一个count
属性,每当rowsInserted 、rowsRemoved 和modelReset 信号发出时,该属性就会更新。然后,Button
可将此属性绑定到其text
。
另请参阅 弹出窗口控件、自定义弹出窗口和ApplicationWindow 。
属性文档
activeFocus : bool |
该属性表示弹出窗口是否有活动焦点。
另请参阅 focus 和 Qt Quick 中的键盘焦点。
anchors.centerIn : Item |
锚点通过指定项目与其他项目的关系来定位项目。
常见的使用情况是将弹出窗口居中放置在其父级窗口中。其中一种方法是使用x 和y 属性。锚点提供了一种更方便的方法:
还可以使用Overlay 将弹出窗口居中:
ApplicationWindow { id: window // ... Pane { // ... Popup { anchors.centerIn: Overlay.overlay } } }
这样就可以轻松地从任何组件中将弹出窗口居中。
注意: 弹出窗口只能在其直接父代或窗口覆盖层中居中;试图在其他项目中居中将产生警告。
此属性在 QtQuick.Controls 2.5 (Qt 5.12) 中引入。
另请参阅 Popup Positioning,anchors, 以及 Using Qt Quick Controls types in property declarations.
availableHeight : real |
该属性用于保存从height 的弹出窗口中扣除垂直填充后contentItem 可用的高度。
另请参阅 padding,topPadding, 和bottomPadding 。
availableWidth : real |
该属性用于保存从width 的弹出窗口中扣除水平填充后可用于contentItem 的宽度。
另请参阅 padding,leftPadding, 和rightPadding 。
background : Item |
bottomInset : real |
bottomMargin : real |
bottomPadding : real |
该属性用于保存底部填充。除非明确设置,否则该值等于verticalPadding
。
填充属性用于控制content item 的几何形状。
Popup 采用的填充方法与Control 相同。有关 padding 系统的可视化说明,请参阅文档的Control Layout 部分。
另请参阅 padding,topPadding,verticalPadding, 和availableHeight 。
clip : bool |
该属性表示是否启用剪切。默认值为false
。只有当弹出窗口不在自己的窗口中时,剪切才起作用。
closePolicy : enumeration |
该属性决定弹出窗口在何种情况下关闭。可以通过组合标志来实现多种关闭弹出窗口的方式。
可用的值有
常量 | 说明 |
---|---|
Popup.NoAutoClose | 弹出窗口只有在收到手动关闭指示时才会关闭。 |
Popup.CloseOnPressOutside | 当鼠标在弹出窗口外按下时,弹出窗口将关闭。 |
Popup.CloseOnPressOutsideParent | 当鼠标被按到父级之外时,弹出窗口将关闭。 |
Popup.CloseOnReleaseOutside | 在弹出窗口外释放鼠标时,弹出窗口将关闭。 |
Popup.CloseOnReleaseOutsideParent | 当鼠标从父窗口外释放时,弹出窗口将关闭。 |
Popup.CloseOnEscape | 在弹出窗口有活动焦点时按下 Escap 键,弹出窗口将关闭。 |
CloseOnPress*
和CloseOnRelease*
策略仅适用于弹出窗口之外的事件。也就是说,如果打开了两个弹出窗口,而第一个弹出窗口的策略是Popup.CloseOnPressOutside
,则点击第二个弹出窗口不会导致第一个弹出窗口关闭。
默认值为Popup.CloseOnEscape | Popup.CloseOnPressOutside
。
注意: 有一个已知的限制,即Popup.CloseOnReleaseOutside
和Popup.CloseOnReleaseOutsideParent
策略仅适用于modal 弹出窗口。
该属性包含内容子项列表。
该列表包含在 QML 中声明为弹出窗口子内容的所有项目。
注意: 与contentData
不同,contentChildren
不包括非视觉 QML 对象。
另请参阅 Item::children 和contentData 。
该属性包含内容数据列表。
该列表包含在 QML 中声明为弹出窗口子对象的所有对象。
注意: 与contentChildren
不同,contentData
包含非视觉 QML 对象。
另请参阅 Item::data 和contentChildren 。
contentHeight : real |
contentItem : Item |
该属性用于保存弹出窗口的内容项。
内容项是弹出窗口的可视化实现。当弹出窗口可见时,内容项会自动被重新设置为overlay item 。
注: 内容项的大小会自动调整,以适应弹出窗口padding 的大小。
注: 大多数弹出窗口都使用内容项的隐式大小来计算弹出窗口本身的隐式大小。如果您使用自定义内容项替换内容项,也应考虑为其提供合理的隐式大小(除非像Text 这样的内容项有自己的隐式大小)。
另请参阅 自定义弹出窗口。
contentWidth : real |
dim : bool |
enabled : bool |
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 相同的填充方法。有关 padding 系统的可视化解释,请参阅文档的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 : real |
该属性保存隐式背景宽度。
其值等于background ? background.implicitWidth : 0
。
该属性在 QtQuick.Controls 2.5 (Qt 5.12) 中引入。
implicitContentHeight : real |
该属性用于保存隐式内容高度。
该值根据内容子代计算得出。
该属性在 QtQuick.Controls 2.5 (Qt 5.12) 中引入。
implicitContentWidth : real |
该属性保存隐式内容宽度。
该值根据内容子代计算得出。
该属性在 QtQuick.Controls 2.5 (Qt 5.12) 中引入。
implicitHeight : real |
该属性保存弹出窗口的隐式高度。
implicitWidth : real |
该属性保存弹出窗口的隐式宽度。
leftInset : real |
leftMargin : real |
该属性表示弹出窗口左边缘与其窗口左边缘之间的距离。
左边缘为负值的弹出窗口不会被推到包围窗口的左边缘内。默认值为-1
。
另请参阅 margins,rightMargin, 和Popup Layout 。
leftPadding : real |
该属性用于保存左填充。除非明确设置,否则该值等于horizontalPadding
。
padding 属性用于控制content item 的几何形状。
弹出窗口使用与Control 相同的填充方法。有关 padding 系统的可视化说明,请参阅文档的Control Layout 部分。
另请参阅 padding,rightPadding,horizontalPadding 和availableWidth 。
locale : Locale |
该属性用于保存弹出窗口的地域。
另请参阅 mirrored 和LayoutMirroring 。
margins : real |
该属性表示弹出窗口边缘与其窗口边缘之间的距离。
具有负边距的弹出窗口不会被推到包围窗口的范围内。默认值为-1
。
另请参阅 topMargin,leftMargin,rightMargin,bottomMargin 和Popup Layout 。
mirrored : bool |
modal : bool |
该属性表示弹出窗口是否为模态。
模态弹出窗口通常具有独特的背景调光效果(定义于Overlay.modal ),并且不允许按压或释放事件传递到其下方的项目。例如,如果用户不小心点击了弹出窗口之外的位置,弹出窗口之下位于点击位置的任何项目都不会收到事件。
在桌面平台上,模式弹出窗口通常只在按下转义键时才会关闭。要实现这种行为,可将closePolicy 设置为Popup.CloseOnEscape
。默认情况下,closePolicy
设置为Popup.CloseOnEscape | Popup.CloseOnPressOutside
,这意味着在模式弹出窗口外点击将关闭弹出窗口。
默认值为false
。
另请参阅 dim 。
opened : bool |
padding : real |
该属性保存默认 padding。
padding 属性用于控制content item 的几何形状。
Popup 采用的填充方法与Control 相同。有关 padding 系统的可视化说明,请参阅文档的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") } } }
另请参阅:Item::palette,Window::palette,ColorGroup 、Palette
该属性在 QtQuick.Controls 2.3 (Qt 5.10) 中引入。
parent : Item |
该属性保存父项。
popupType : enumeration |
该属性决定首选的弹出窗口类型。
可用选项:
常量 | 说明 |
---|---|
Item | 弹出窗口将嵌入same scene as the parent ,不使用单独窗口。 |
Window | 弹出窗口将在separate window 中显示。如果平台不支持多窗口,则将使用Popup.Item 代替。 |
Native | 弹出窗口将是平台的本地窗口。如果平台不支持本地弹出窗口,则将使用Popup.Window 代替。 |
Popup.Item
支持所有平台,但Popup.Window
和Popup.Native
通常只支持桌面平台。此外,如果弹出窗口是Menu 内的native menubar ,菜单也将是本地的。如果菜单是另一个菜单中的子菜单,则由父(或根)菜单决定类型。
默认值通常是Popup.Item
,但也有上述例外情况。这可能会在未来的 Qt 版本中发生变化,因为某些样式和平台会从使用其他弹出式菜单类型中受益。例如,如果您总是想在 macOS 上的所有样式中使用本地菜单,您就可以这样做:
Menu { popupType: Qt.platform.os === "osx" ? Popup.Native : Popup.Window }
此外,如果您选择自定义弹出窗口(例如更改任何委托),则应考虑将弹出窗口类型也设置为Popup.Window
。这将确保您的更改在所有平台和所有样式上都是可见的。否则,在使用本地菜单时,将不会使用委托进行呈现。
此属性在 Qt 6.8 中引入。
另请参阅 Popup type 。
rightInset : real |
rightMargin : real |
该属性表示弹出窗口右边缘与其窗口右边缘之间的距离。
右边距为负值的弹出窗口不会被推到包围窗口的右边缘内。默认值为-1
。
另请参阅 margins,leftMargin, 和Popup Layout 。
rightPadding : real |
该属性用于设置右边距。除非明确设置,否则该值等于horizontalPadding
。
填充属性用于控制content item 的几何形状。
Popup 采用的填充方法与Control 相同。有关 padding 系统的可视化说明,请参阅文档的Control Layout 部分。
另请参阅 padding,leftPadding,horizontalPadding 和availableWidth 。
scale : real |
该属性用于保存弹出窗口的缩放系数。默认值为1.0
。
缩放比例小于1.0
时,弹出窗口的尺寸会变小;缩放比例大于1.0
时,弹出窗口的尺寸会变大。不支持负缩放比例。
spacing : real |
该属性保留间距。
间距对于具有多个或重复构件的弹出窗口非常有用。例如,一些样式使用间距来确定Dialog 的页眉、内容和页脚之间的距离。 Popup 并不强制执行间距,因此每种样式可能会有不同的解释,有些样式可能会完全忽略间距。
该属性在 QtQuick.Controls 2.1 (Qt 5.8) 中引入。
topInset : real |
topMargin : real |
该属性保存弹出窗口顶部边缘与其窗口顶部边缘之间的距离。
顶部边距为负值的弹出窗口不会被推到包围窗口的顶部边缘内。默认值为-1
。
另请参阅 margins,bottomMargin, 和Popup Layout 。
topPadding : real |
该属性用于保存顶部填充。除非明确设置,否则该值等于verticalPadding
。
填充属性用于控制content item 的几何形状。
Popup 采用的填充方法与Control 相同。有关 padding 系统的可视化说明,请参阅文档的Control Layout 部分。
另请参阅 padding,bottomPadding,verticalPadding 和availableHeight 。
transformOrigin : enumeration |
verticalPadding : real |
该属性用于保存垂直填充。除非明确设置,否则该值等于padding
。
填充属性用于控制content item 的几何形状。
Popup 采用的填充方法与Control 相同。有关 padding 系统的可视化解释,请参阅文档的Control Layout 部分。
该属性在 QtQuick.Controls 2.5 (Qt 5.12) 中引入。
另请参阅 padding,topPadding,bottomPadding, 和horizontalPadding 。
width : real |
该属性表示弹出窗口的宽度。
z : real |
信号文档
void aboutToHide() |
void aboutToShow() |
void closed() |
void opened() |
方法文档
void close() |
关闭弹出窗口。
另请参阅 visible 。
forceActiveFocus(enumeration reason = Qt.OtherFocusReason) |
通过给定的reason ,强制弹出窗口主动聚焦。
该方法将焦点设置在弹出窗口上,并确保对象层次结构中的所有祖先FocusScope 对象也得到focus 。
另请参阅 activeFocus 和Qt::FocusReason 。
void open() |
打开弹出窗口。
另请参阅 visible 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.