相关控件:Image
Item类型是Qt Quick中所有可视项目的基本类型,Qt Quick中的所有可视项目都继承自Item,Item本身没有可视化外观,但它定义了可视化项目的所有属性。
本文: https://www.lovejia.win/blog/article/Item.html
参考原文:http://doc.qt.io/qt-5/qml-qtquick-item.html#details
参考译文:http://www.360doc.com/content/12/0221/02/1671317_188225511.shtml
http://blog.csdn.net/gooderfeng/article/details/8984916?locationNum=1&fps=1
属性说明
activeFocus:bool
只读属性指示项目是否具有活动焦点;如果有,那么可以处理键盘鼠标的输入信息。
activeFocusOnTab:bool
默认情况下设置为false,与 Tab键有关,用于确定项目是否要位于选项卡焦点链中。
anchors
anchors.top:AnchorLine (元素顶端线)
anchors.bottom:AnchorLine (元素底线)
anchors.left:AnchorLine (元素左边线)
anchors.right:AnchorLine (元素右边线)
anchors.horizontalCenter:AnchorLine (水平居中线)
anchors.verticalCenter:AnchorLine (垂直中间线)
anchors.baseline:AnchorLine
(如果是text控件,baseline是一个假想的,text 应该显示的位置。如果是非text控件则与top一致)
anchors.fill:Item (Item 填充anchors的区域到指定位置)
anchors.centerIn:Item (Item 居中布局)
anchors.margins:real (指定上下左右4边与其他元素间隙)
anchors.topMargin:real (元素顶端线与其他元素间隙)
anchors.bottomMargin:real (元素底线与其他元素空隙)
anchors.leftMargin:real (元素左边线与其他元素间隙)
anchors.rightMargin:real (元素右边线与其他元素间隙)
anchors.horizontalCenterOffset:real (指定水平居中线偏移量)
anchors.verticalCenterOffset:real (垂直中间线偏移量)
anchors.baselineOffset:real (baseline的偏移量)
anchors.alignWhenCentered:bool
(指定不使用半个像素绘制图形,当需要居中一个elements,宽度或者高度是基数,不使用半个像素绘制)
锚点提供了通过指定项目与其他项目的关系来定位项目的方式。
有关详细信息,请参阅锚定布局《 QML UI 布局》。
注意:只能将项目锚定到兄弟姐妹或父级。
antialiasing : bool
由视觉元素使用以决定项目是否应使用抗锯齿。默认值为false,但可能会被派生元素覆盖。
baselineOffset:int
指定项目的基线在本地坐标中的位置。
文本项目的基线是文本所在的假想线,包含文本的控件通常将其基线设置为其文本的基线。
对于非文本项,使用默认基线偏移量0。
children : list
children属性包含此项目的可视子项列表。resources属性包含您要按名称引用的非可视资源。
在添加子项目或资源时,通常不需要引用这些属性,因为默认数据属性将根据情况自动将子对象分配给children和resources属性。有关详细信息,请参阅数据文档。
childrenRect
childrenRect.x : real
childrenRect.y : real
childrenRect.width : real
childrenRect.height : real
此属性保存项目的子项的集合位置和大小。
如果需要访问项目的子项的集合几何,以便正确设置项目大小,此属性很有用。
clip:bool
此属性保存是否启用剪切,默认剪辑值为false。
如果启用剪切,项目将剪切自己的绘画,以及它的孩子的绘画,到其边界矩形。
data : list
data属性允许您自由地混合项目中的可视子项和资源。如果将可视项分配给数据列表,它将成为子项,如果您分配任何其他对象类型,则将其作为资源添加。
通常不需要引用data属性,因为它是Item的默认属性,因此所有子项目都自动分配给此属性。
enabled : bool
此属性用于保存项目是否接收鼠标和键盘事件。默认情况下为true。
设置此属性将直接影响enabled子项目的值。设置为时,所有子项false的enabled值也将成为false。设置为时,子项true的enabled值将返回到true,除非它们已明确设置为false。
将此属性设置为false自动将activeFocus设置为false,并且此项将更长时间接收键盘事件。
参见visible。
focus : bool
默认 false ,设置元素是否有焦点区以接收键盘事件。
参阅Qt Quick中的activeFocus和键盘焦点。
height : real/width:real
定义项目的位置和大小。(x,y)位置相对于父亲。
implicitHeight : real
如果没有定义项目的自然宽度或高度宽度或高度指定的。
大多数项目的默认隐式大小为0x0,但是一些项目具有不能重写的固有隐式大小,例如,图像和文本。
注意:使用implicitWidth的文字或文字编辑,并明确设置宽度导致性能下降,因为文字必须重新布局。
implicitWidth:real
参见implicitHeight。
注意:使用Text或TextEdit的implicitWidth和设置宽度会明显导致性能损失,因为文本必须布局两次。
layer.effect : Component
保持应用于此图层的效果。
效果通常是ShaderEffect组件,但可以分配任何项目组件。该效果应具有名称与layer.samplerName匹配的源贴图属性。
参见layer.samplerName和项目图层。
layer.enabled:bool
保留项目是否分层。默认情况下禁用分层。
分层项目将呈现到屏幕外的表面并缓存,直到更改为止。为复杂的QML项层次结构启用分层有时可以是优化。
当禁用层时,其他图层属性不会有任何影响。
参见项目图层。
layer.format : enumeration
此属性定义纹理的内部OpenGL格式。修改此属性在指定layer.effect时也是最有意义的。根据OpenGL实现,此属性可能允许您保存一些纹理内存。
ShaderEffectSource .Alpha - GL_ALPHA;
ShaderEffectSource .RGB - GL_RGB
ShaderEffectSource .RGBA - GL_RGBA
注意:ShaderEffectSource .RGB和ShaderEffectSource .Alpha应谨慎使用,因为在底层硬件和驱动程序中支持这些格式通常不存在。
参见项目图层。
layer.mipmap:bool
如果此属性为true,则会为纹理生成mipmaps。
注意:一些OpenGL ES 2实现不支持非二次幂纹理的mip映射。
参见项目图层。
layer.samplerName : string
保存效果的源纹理属性的名称。
此值必须与效果的源纹理属性的名称匹配,以便项目可以将图层的离屏表面正确传递给效果。
参见layer.effect,ShaderEffect和项目图层。
layer.smooth:bool
保存图层是否平滑变换。
参见项目图层。
layer.sourceRect:rect
此属性定义应呈现到纹理中的项目的矩形区域。源矩形可以大于项本身。如果矩形是null,这是默认值,那么整个项目被渲染到纹理。
参见项目图层。
layer.textureMirroring : enumeration
此属性定义应如何镜像生成的OpenGL纹理。默认值为ShaderEffectSource.MirrorVertically。定制镜像如果产生的纹理直接由自定义着色器,例如那些由指定的访问可能是有用的ShaderEffect。如果对分层项没有指定效果,镜像具有关于该项目的UI表示没有影响。
ShaderEffectSource .NoMirroring - 无镜像
ShaderEffectSource .MirrorHorizontally - 生成的纹理沿着X轴翻转。
ShaderEffectSource .MirrorVertically - 生成的纹理沿Y轴翻转。
layer.textureSize:size
此属性保存图层纹理的请求像素大小。如果它为空,这是默认值,则使用项目的大小。
注意:一些平台对于帧缓冲区对象的大小有一个限制,这意味着实际的纹理大小可能大于请求的大小。
参见项目图层。
layer.wrapMode : enumeration
此属性定义与纹理关联的OpenGL包裹模式。修改此属性在指定layer.effect时非常有意义。
ShaderEffectSource .ClampToEdge - GL_CLAMP_TO_EDGE水平和垂直
ShaderEffectSource .RepeatHorizontally - 水平GL_REPEAT,垂直GL_CLAMP_TO_EDGE
ShaderEffectSource .RepeatVertically - GL_CLAMP_TO_EDGE水平,GL_REPEAT垂直
ShaderEffectSource .Repeat - GL_REPEAT水平和垂直
注意:一些OpenGL ES 2实现不支持具有非二次幂纹理的GL_REPEAT包装模式。
参见项目图层。
opacity : real
此属性保存项目的不透明度。不透明度指定为0.0(完全透明)和1.0(完全不透明)之间的数字。默认值为1.0。这个属性是一个有继承性的属性,也就是说这个属性会遗传给它的所有子item。
parent:Item
此属性保存项目的视觉父级。
注意:视觉父对象的概念与QObject父对象的概念不同。项目的视觉父节点可能不一定与其对象父节点相同。
resources:list < Object >
children属性包含此项目的可视子项列表。resources属性包含您要按名称引用的非可视资源。
在添加子项目或资源时,通常不需要引用这些属性,因为默认数据属性将根据情况自动将子对象分配给children和resources属性。
参阅数据文档。
rotation:real
此属性以顺时针方向围绕其transformOrigin保持项目的旋转。
默认值为0度(即,无旋转)。
scale : real
此属性保存此项的缩放因子。
小于1.0的缩放使得项目以较小的大小渲染,并且大于1.0的缩放使项目具有较大的大小。负比例缩放会导致项目在呈现时进行镜像。
默认值为1.0,表示不缩放。
从transformOrigin应用缩放。
smooth:bool
主要用于基于图像的项目,以决定项目是否应该使用平滑采样。使用线性内插执行平滑采样,而使用最近邻居执行非平滑。
默认情况下,此属性设置为true。
state:string
此属性保存项目的当前状态的名称。
如果项目处于其默认状态,即没有设置显式状态,则此属性保存一个空字符串。同样,可以通过将此属性设置为空字符串将项目返回到其默认状态。
states:list < State >
此属性保存此项目的可能状态的列表。要更改此项的状态,请将state属性设置为这些状态之一,或将state属性设置为空字符串以将项目恢复为其默认状态。
此属性指定为状态对象的列表。
transform : list
此属性保存要应用的转换列表。
transformOrigin : enumeration
此属性保存缩放和旋转变换所围绕的原点。
要设置任意变换原点,请使用带变换的缩放或旋转变换类型。
transitions:list < Transition >
此属性保存此项目的转换列表。这些定义每当它改变其状态时要应用于项目的转换。
此属性指定为Transition对象的列表。
visible:bool
此属性用于保存项是否可见。默认情况下这是真的。
设置此属性将直接影响visible子项目的值。设置为时,所有子项false的visible值也将成为false。设置为时,子项true的visible值将返回到true,除非它们已明确设置为false。
(由于这种流动行为,visible如果属性绑定只响应显式属性更改,使用属性可能没有预期的效果。在这种情况下,最好使用opacity属性。)
如果此属性设置为false,项目将不再接收鼠标事件,但将继续接收关键事件,并将保留键盘焦点,如果已设置。(相反,将enabled属性设置为false停止鼠标和键盘事件,并从项目中删除焦点。)
注意:此属性的值仅受此属性或父visible属性的更改影响。它不会改变,例如,如果此项目移动到屏幕外,或者不透明度更改为0。
visibleChildren : list
此只读属性列出当前可见的项目的所有子项。
注意:子级的可见性可能已明确更改,或因为(父级)项目或其他祖父项的可见性已更改。
x : real/y : real
这是为视图中因为移除而失去位置的组件指定的过渡。
z : real
这些属性持有评估section附加属性的表达式。
section附加属性确保ListView被可视化的分为不同的部分。这些属性决定了分段是如何被创建的。
方法说明
childAt(real x,real y)
返回在此项的坐标系内的点(x,y)处找到的第一个可见子项。
null如果没有这样的项,返回。
bool contains(point point)
如果此项包含点(位于本地坐标中),则返回true ; 否则返回false。
forceActiveFocus(Qt :: FocusReason reason)
这是一个重载函数,强制活动焦点在具有给定原因的项目。
此方法设置焦点在项目上,并确保对象层次结构中的所有祖先FocusScope对象也被给予焦点。
参见activeFocus和Qt :: FocusReason。
forceActiveFocus()
强制对项目的活动焦点。
此方法设置焦点在项目上,并确保对象层次结构中的所有祖先FocusScope对象也被给予焦点。
焦点更改的原因将是Qt :: OtherFocusReason。使用重载方法指定焦点原因,以便更好地处理焦点更改。
参见activeFocus。
bool grabToImage(callback,targetSize)
将项目抓取到内存中的图像。
抓取是异步发生的,当抓取完成时调用JavaScript函数回调。回调需要一个参数,这是grab操作的结果; 一个ItemGrabResult对象。
使用targetSize指定目标图像的大小。默认情况下,结果将具有与项目相同的大小。
如果抓取无法启动,函数返回false。
注意:此函数将会将项目渲染到屏幕外的表面,并将该表面从GPU的内存复制到CPU的内存中,这可能是相当昂贵的。对于“实时”预览,使用图层或ShaderEffectSource。
object mapFromGlobal(real x,real y) / object mapToGlobal(real x,real y)
将全局坐标系中的点(x,y)映射到项的坐标系,并返回与映射坐标匹配的点。
object mapFromItem(Item item,real x,real y,real width,real height) / object mapToItem(Item item,real x,real y,real width,real height)
映射点(点¯x,ÿ)或矩形(点¯x,ÿ,宽度,高度),这是在产品的坐标系,此文件的坐标系,并返回一个点或矩形匹配映射的坐标。
如果item是一个null值,这将映射来自根QML视图的坐标系统的点或rect。
object mapFromItem(Item item,real x,real y) / object mapToItem(Item item,real x,real y)
映射点(点¯x,ÿ)或矩形(点¯x,ÿ,宽度,高度),这是在产品的坐标系,此文件的坐标系,并返回一个点或矩形匹配映射的坐标。
如果item是一个null值,这将映射来自根QML视图的坐标系统的点或rect。
nextItemInFocusChain(bool forward)
返回此项旁边的焦点链中的项目。如果前进是true或不提供,则它是前进方向上的下一个项目。如果前进false,则是向后方向上的下一项。
功能简述
Qt Quick中的所有可视项目都继承自Item。尽管Item对象没有视觉外观,但它定义了所有视觉项目中常见的属性,例如x和y位置,宽度和高度,锚定和键处理支持。
例
下面的例子显示Item作为容器,也常用来对项目进行分组。
1 | import QtQuick 2.0 |
下面的示例将键盘焦点分配给项目,并通过常规onPressed处理程序和返回键通过onReturnPressed处理程序处理左键:
1 | import QtQuick 2.0 |
这个例子展示Item 中有一个child属性和一个resources属性,前者包含了可见的子类的列表,后者包含了不可见的资源。
编程中可以向一个项目中添加任何元素
1 | import QtQuick 2.0 |
Item有个data默认属性,可加可见子类和不可见资源,data为默认属性,可以省略data标签
1 | Item { |
在下面的例子中,设置隐式大小定义具有基于其内容的首选大小的组件:
1 | import QtQuick 2.0 |
以下示例显示了堆叠顺序的各种影响:
相同z- 后期儿童高于早期儿童:
1 | import QtQuick 2.0 |
高于z顶部:
1 | Item { |
同上z- 父母以上的儿童:
1 | Item { |
下z如下:
1 | Item { |