控制 QML 类型
提供所有控件通用功能的抽象基类型。 更多信息...
导入语句 | import QtQuick.Controls |
继承 | |
继承自 |
属性
- availableHeight : real
- availableWidth : real
- background : Item
- bottomInset : real
(自 QtQuick.Controls 2.5 (Qt 5.12) 开始)
- bottomPadding : real
- contentItem : Item
- focusReason : enumeration
- font : font
- horizontalPadding : real
(自 QtQuick.Controls 2.5 (Qt 5.12) 开始)
- hoverEnabled : bool
- hovered : bool
- implicitBackgroundHeight : real
(自 QtQuick.Controls 2.5 (Qt 5.12) 开始)
- implicitBackgroundWidth : real
(自 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) 开始)
- leftInset : real
(自 QtQuick.Controls 2.5 (Qt 5.12) 开始)
- leftPadding : 实数
- locale :Locale
- mirrored : 布尔值
- padding : 实数
- rightInset : 实数
(自 QtQuick.Controls 2.5 (Qt 5.12))
- rightPadding : 实数
- spacing : 实数
- topInset : 实数
(自 QtQuick.Controls 2.5 (Qt 5.12))
- topPadding : 实数
- verticalPadding : 实数
(自 QtQuick.Controls 2.5 (Qt 5.12))
- visualFocus : 布尔值
- wheelEnabled : 布尔值
详细说明
控件是用户界面控件的基类。它从窗口系统接收输入事件,在屏幕上绘制自己的表示。
控件布局
以下图表说明了典型控件的布局
控件的隐式宽度和隐式高度通常基于背景和内容项的隐式大小,以及任何内边距和填充。这些属性决定了在未指定显式宽度或高度时,控件的大小。
内容项的几何形状由填充决定。以下示例在控件的边界和内容项之间预留了10px的填充
Control { padding: 10 contentItem: Text { text: "Content" } }
背景项填充控件的全部宽度和高度,除非已经为其提供了内边距或显式大小。背景内边距对于扩展控件的可触摸/交互区域非常有用,而不会影响其视觉大小。这在触摸设备上经常使用,以确保控件不是太小,以至于用户无法与之交互。内边距会影响控件的大小,因此会影响它们在布局中所占的空间,例如。
负内边距可用于使背景比控件更大。以下示例使用负内边距将阴影放置在控件边界之外
Control { topInset: -2 leftInset: -2 rightInset: -6 bottomInset: -6 background: BorderImage { source: ":/images/shadowed-background.png" } }
事件处理
除非交互式指示器外的所有控件都不让点击和触摸事件透到底部项。例如,当在以下示例中的面板上点击时,console.log()
调用永远不会执行,因为MouseArea位于场景中该控件下方
MouseArea { anchors.fill: parent onClicked: console.log("MouseArea was clicked") Pane { anchors.fill: parent } }
如果wheelEnabled为true
,则控件会消费滚动事件。
另请参阅ApplicationWindow、Container以及在属性声明中使用 Qt Quick 控件类型。
属性文档
background : Item |
此属性表示背景项。
Button { id: control text: qsTr("Button") background: Rectangle { implicitWidth: 100 implicitHeight: 40 opacity: enabled ? 1 : 0.3 color: control.down ? "#d0d0d0" : "#e0e0e0" } }
注意: 如果背景项没有指定显式大小,它将自动跟随控制的大小。在大多数情况下,无需为背景项指定宽度或高度。
注意: 大多数控件使用背景项的隐式大小来计算控件本身的隐式大小。如果您用自定义项替换背景项,也应考虑为其提供一个合理的隐式大小(除非是像Image这样的项,它有自己的隐式大小)。
另请参阅 控件布局。
bottomInset : real |
contentItem : Item |
focusReason : 枚举 |
此属性表示最后焦点更改的原因。
注意:此属性并不表示项目是否具有 active focus,而是表示项目获得或失去焦点的原因。
常量 | 描述 |
---|---|
Qt(MouseFocusReason) | 发生鼠标操作。 |
Qt(TabFocusReason) | 按下了Tab键。 |
Qt(BacktabFocusReason) | 发生了Backtab。此输入可能包括Shift或Control键;例如:Shift+Tab。 |
Qt(ActiveWindowFocusReason) | 窗口系统使此窗口变为活动或非活动窗口。 |
Qt(PopupFocusReason) | 应用程序打开/关闭了一个弹出窗口,该窗口抢夺/释放了键盘焦点。 |
Qt(ShortcutFocusReason) | 用户键入了标签的快捷键。 |
Qt(MenuBarFocusReason) | 菜单栏获得了焦点。 |
Qt(OtherFocusReason) | 另一个原因,通常是与应用程序相关的。 |
另请参阅:Item::activeFocus 和 visualFocus。
font : font |
此属性保存了控件当前设置的字体。
此属性描述了控件请求的字体。该字体用于控件样式在渲染标准组件时的渲染,同时也是确保自定义控件可以保持与原生平台原生外观和感觉一致的手段。不同的平台或不同的样式通常为应用程序定义不同的字体。
默认字体取决于系统环境。《ApplicationWindow》维护一个系统/主题字体,作为所有控件的默认值。也可能存在某些类型控件的特殊默认字体。您也可以通过以下方式设置控件的默认字体:
- 在加载QML之前,通过传递自定义字体到QGuiApplication::setFont(); 或
- 指定在qtquickcontrols2.conf文件中的字体。
最后,字体将与Qt的字体数据库进行匹配以找到最佳匹配。
控件从父控件继承显式字体属性到子控件。如果您更改了控件字体上的某个特定属性,该属性将传递到控件的所有子控件,覆盖该属性的任何系统默认值。
Page { font.family: "Courier" Column { Label { text: qsTr("This will use Courier...") } Switch { text: qsTr("... and so will this") } } }
要获取所有可用字体属性的完整列表,请参阅font QML Value Type文档。
horizontalPadding : real |
此属性保存了水平填充。
此属性是在 QtQuick.Controls 2.5 (Qt 5.12) 中引入的。
另请参阅:Control Layout,padding,leftPadding,rightPadding,和 verticalPadding。
hoverEnabled : bool |
hovered : bool |
此属性保存控件是否被悬停。
另请参阅:hoverEnabled。
implicitBackgroundHeight : real |
此属性保存了隐式背景高度。
该值等于 background ? background.implicitHeight : 0
。
这通常与 implicitContentHeight 一起使用,用于计算 implicitHeight
Control { implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding) }
此属性是在 QtQuick.Controls 2.5 (Qt 5.12) 中引入的。
implicitBackgroundWidth : real |
该属性保存隐式背景宽度。
该值等于 background ? background.implicitWidth : 0
。
这通常与 implicitContentWidth 一起使用,用于计算 implicitWidth
Control { implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) }
此属性是在 QtQuick.Controls 2.5 (Qt 5.12) 中引入的。
implicitContentHeight : real |
该属性保存隐式内容高度。
对于基本控件,该值等于 contentItem ? contentItem.implicitHeight : 0
。对于继承自 Container 或 Pane 的类型,该值基于内容子项计算。
这通常与 implicitBackgroundHeight 一起使用,用于计算 implicitHeight
Control { implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, implicitContentHeight + topPadding + bottomPadding) }
此属性是在 QtQuick.Controls 2.5 (Qt 5.12) 中引入的。
implicitContentWidth : real |
该属性保存隐式内容宽度。
对于基本控件,该值等于 contentItem ? contentItem.implicitWidth : 0
。对于继承自 Container 或 Pane 的类型,该值基于内容子项计算。
这通常与 implicitBackgroundWidth 一起使用,用于计算 implicitWidth
Control { implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, implicitContentWidth + leftPadding + rightPadding) }
此属性是在 QtQuick.Controls 2.5 (Qt 5.12) 中引入的。
leftInset : real |
leftPadding : real |
该属性保存左侧边距。除非明确设置,否则其值等于 horizontalPadding
。
另请参阅控制布局、padding、rightPadding、horizontalPadding 和 availableWidth。
locale : Locale |
该属性保存控件的区域设置。
它包含用于格式化数据和数字的区域设置特定属性。除非已设置特殊的区域设置,否则它将是父级的区域设置或默认区域设置。
控件会将从父级传播区域设置给子级。如果您更改控件的区域设置,该区域设置将传播到控件的所有子级,覆盖系统默认区域设置。
另请参阅mirrored。
镜像 : bool |
该属性表示控制是否已镜像。
该属性提供方便。当一个控制部件的视觉布局方向为从右到左时,认为它是镜像的;即当 LayoutMirroring.enabled 为 true
时。
从 Qt 6.2 开始,locale 属性不再影响此属性。
另请参阅 LayoutMirroring 和 从右到左用户界面。
填充 : real |
该属性保存默认填充。
填充在内容部件的每一边与背景部件之间添加空间,从而有效地控制内容部件的大小。要指定控制部件特定边界的填充值,设置其相关属性
注意:不同的样式可能会以不同的方式为某些控制指定默认填充,并且这些方式可能会随设计指南的演进而改变。为了确保这些变化不会影响您指定的填充值,最好使用可用的最具体的属性。例如,而不是设置填充属性
padding: 0
请直接设置每个特定的属性
leftPadding: 0 rightPadding: 0 topPadding: 0 bottomPadding: 0
rightInset : real |
间距 : real |
该属性保存间距。
间距对于具有多个或重复构建块的控制来说很有用。例如,某些样式使用间距来确定 CheckBox 中的文本和指示器之间的距离。控件不强制实施间距,因此每个样式可能会以不同的方式解释它,其中一些可能会完全忽略它。
topInset : real |
verticalPadding : double |
visualFocus : bool |
该属性保存控件是否有视觉焦点。当控件有活动焦点且焦点原因是Qt.TabFocusReason
、Qt.BacktabFocusReason
或Qt.ShortcutFocusReason
时,该属性为true
。
通常,为了可视化键焦点,首选使用此属性而不是Item::activeFocus。这确保了只有在使用键盘交互时才会可视化键焦点 - 而不是通过触摸或鼠标交互。
参阅Item::focusReason和Item::activeFocus。
wheelEnabled : bool |
该属性决定控件是否处理滚动事件。默认值为false
。
注意:当为可以滚动的控件(如Flickable)启用滚动事件时,必须谨慎,因为控件将消耗这些事件,从而导致Flickable滚动被中断。
© 2024 Qt公司。本文件中的文档贡献是各自所有者的版权。本文件中的文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3许可的。Qt及其相关标志是Qt公司(Finland)和其他国家/地区的商标。所有其他商标均归各自所有者所有。