QML类型说明-Grid

Grid

ImportStatement:   import QtQuick 2.2

Inherits:      Item

 

Properties

add :Transition

columnSpacing: qreal

columns :int

effectiveHorizontalItemAlignment: enumeration

effectiveLayoutDirection: enumeration

flow : enumeration

horizontalItemAlignment: enumeration

layoutDirection: enumeration

move :Transition

populate :Transition

rowSpacing :qreal

rows : int

spacing :qreal

verticalItemAlignment: enumeration

 

DetailedDescription

Grid是以栅格的方式定位子组件的组件。

Grid创建足够巨大的栅格,足够定位所有的子组件。它从左到右,从顶到底放置子组件。每个子组件定位在单元的左上角(0,0)。

Grid默认4列,根据所有子组件的数目创建需要的行。行和列的数目也能通过设置rows和columns属性来指定。

例如下面的例子包含5个不同尺寸的矩形。

importQtQuick 2.0

 

Grid {

    columns: 3

    spacing: 2

    Rectangle { color: "red"; width:50; height: 50 }

    Rectangle { color: "green";width: 20; height: 50 }

    Rectangle { color: "blue"; width:50; height: 20 }

    Rectangle { color: "cyan"; width:50; height: 50 }

    Rectangle { color: "magenta";width: 10; height: 10 }

}

Grid以栅格格式自动定位子组件:


如果Grid中的组件不可见或子组件的宽或高为0,那么子组件不会被布局,也不会被显示。同时,由于Grid自动定位子组件的位置,所以不推荐设置子组件的x、y或用锚属性锚定子组件。

 

PropertyDocumentation

add :Transition

往Grid中增加组件或先创建位置,后给位置相应的子组件或一个组件由不可见变得可见时,这个过渡触发。过渡能用ViewTransition属性去访问添加在子组件上的细节。可参阅ViewTransition的文档来了解更多信息。

注意在Grid创建时已经是Grid的一部分的子组件不会触发这个过渡,取代的,是触发populate过渡。

 

columnSpacing: qreal

列之间的空间。如果这个属性没有设置,spacing被用作列间距。默认没有设置。

 

columns :int

栅格中列的数目,默认为4。如果Grid没有足够的子组件,不分列将变成0宽度。

 

effectiveHorizontalItemAlignment: enumeration

这是只读的。设置栅格中子组件的水平对齐和垂直对齐。默认子组件垂直对齐到顶,水平对齐跟随栅格的layoutDirection。例如,layoutDirection为从左到右,组件将对齐到左边。

horizontalItemAlignment的有效值:Grid.AlignLeft、Grid.AlignRight和Grid.AlignHCenter。

verticalItemAlignment的有效值:Grid.AlignTop、Grid.AlignBottom和Grid.AlignVCenter。

下边是如何对齐的例子:

 
Horizontal alignment AlignLeft AlignHCenter AlignHCenter
Vertical alignment AlignTop AlignTop AlignVCenter

当使用附加属性LayoutMirroring::enabled或通过设置layoutDirection进行镜像布局时,组件的可视水平对齐也被镜像。尽管如此,horizontalItemAlignment的属性不会改变。所以查询组件的有效水平对齐,使用effectiveHorizontalItemAlignment。

 

effectiveLayoutDirection: enumeration

这是只读的。栅格的有效布局方向。当使用为布局使用附加属性LayoutMirroring::enabled时,栅格定位的可视布局被镜像但layoutDirection不变。

 

flow :enumeration

布局的流动方向。可能的值为

Grid.LeftToRight(default) -根据layoutDirection 定位下一个子组件。当宽度超过限制,开始在下一行开始定位组件。

Grid.TopToBottom-从顶到底定位下一个子组件,高度超过限制,开始在下一列定位组件。

 

horizontalItemAlignment: enumeration

设置栅格中子组件的水平对齐和垂直对齐。默认子组件垂直对齐到顶,水平对齐跟随栅格的layoutDirection。例如,layoutDirection为从左到右,组件将对齐到左边。

horizontalItemAlignment的有效值:Grid.AlignLeft、Grid.AlignRight和Grid.AlignHCenter。

verticalItemAlignment的有效值:Grid.AlignTop、Grid.AlignBottom和Grid.AlignVCenter。

下边是如何对齐的例子:

 
Horizontal alignment AlignLeft AlignHCenter AlignHCenter
Vertical alignment AlignTop AlignTop AlignVCenter


当使用附加属性LayoutMirroring::enabled或通过设置layoutDirection进行镜像布局时,组件的可视水平对齐也被镜像。尽管如此,horizontalItemAlignment的属性不会改变。所以查询组件的有效水平对齐,使用effectiveHorizontalItemAlignment。

 

layoutDirection: enumeration

布局方向。属性值为:

Qt.LeftToRight(default) -子组件按照从顶到底,从左到右的顺序一个接一个定位。流方向依赖于Grid::flow属性。

Qt.RightToLeft-子组件按照从顶到底,从右到左的顺序一个接一个定位,流方向依赖于 Grid::flow属性。

 

move :Transition

当由于添加,移除或重新排列子组件导致组件失去当前所处的位置,或改变组件的大小导致子组件失去位置时,这个过渡被触发。过渡能用ViewTransition属性去访问添加在子组件上的细节。注意对这个过渡来说,只有当过渡被在移动组件的位置添加组件而失去位置所触发时,ViewTransition.targetIndexes和ViewTransition.targetItems列表才被设置。其他情况,列表是空的。可参阅ViewTransition的文档来了解更多信息。

注意:在Qt Quick 1,Grid被创建时的所有存在子组件,都使用这个过渡。而在Qt Quick 2中,使用populate这个过渡来处理Grid的第一次创建。

 

populate :Transition

Grid第一次被创建时,已经是Flow的一部分的子组件触发的过渡。过渡能用ViewTransition属性去访问添加在子组件上的细节。可参阅ViewTransition的文档来了解更多信息

 

rowSpacing :qreal

在行之间的空间,以像素为单位。如果没有设置,spacing被作为行间隔。默认没有设置。

 

rows : int

栅格的行数。如果子组件的数目不够填充指定的所有行,一些行的宽度变为0。(个人认为是高度,但英文文档是宽度。从可视的角度,宽为0和高为0效果一样)

 

spacing :qreal

相邻组件之间的空间。这个值用于水平方向和垂直方向间隔一致。默认为0。

下面的例子,在栅格中放置了红、蓝、黄三种矩形,使用定位器白色占据栅格空间。左边的spacing为0,右边的spacing为6。

verticalItemAlignment: enumeration

本属性处理垂直对齐,在文档中,很多时候相似的属性,说明集中在一起说明,所以文档是一致的。

设置栅格中子组件的水平对齐和垂直对齐。默认子组件垂直对齐到顶,水平对齐跟随栅格的layoutDirection。例如,layoutDirection为从左到右,组件将对齐到左边。

horizontalItemAlignment的有效值:Grid.AlignLeft、Grid.AlignRight和Grid.AlignHCenter。

verticalItemAlignment的有效值:Grid.AlignTop、Grid.AlignBottom和Grid.AlignVCenter。

下边是如何对齐的例子:

 
Horizontal alignment AlignLeft AlignHCenter AlignHCenter
Vertical alignment AlignTop AlignTop AlignVCenter


当使用附加属性LayoutMirroring::enabled或通过设置layoutDirection进行镜像布局时,组件的可视水平对齐也被镜像。尽管如此,horizontalItemAlignment的属性不会改变。所以查询组件的有效水平对齐,使用effectiveHorizontalItemAlignment。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: QML-QianWindow-V1版本界面是一款用户界面设计程序,它为开发人员提供了大量可自定义的UI组件,使得开发者可以轻松地创建美观、直观且易于使用的界面。QML-QianWindow-V1版本界面具有界面美观,易用性强以及可扩展性强的特点。该程序提供了多种UI组件如窗口、按钮、文本框、下拉框、进度条等等。每个组件都可以基于开发需求进行个性化设计,提高了程序的可读性和可维护性。 QML-QianWindow-V1版本界面的窗口设计功能令人称赞。用户可以定制窗口的样式、位置和大小等属性,使其符合自己的需求。同时,该程序支持类似IOS与Android风格的Tab、Panel、Dialog等视图控件,让应用的界面更具丰富性和交互性,提升用户体验。 此外,QML-QianWindow-V1版本界面可让用户通过实用的数据模型,快速地创建和管理表格和列表,包括多行、多列的表格和单选或多选列表,使得用户可以方便地处理大量数据。 总之,QML-QianWindow-V1版本界面通过提供易用性和可扩展性强的UI组件来简化界面设计过程,使得开发人员可以迅速开发出优秀的桌面应用程序界面,以满足用户高品质的界面需求。 ### 回答2: QML-Qianwindow-v1版本是一款基于QML语言开发的桌面应用程序,其主要特点是界面设计美观、简单易用,适用于多种应用场景。 该软件的主界面包含五个主要区域:侧边栏、消息中心、主视图、小部件和设置菜单。 侧边栏主要用于导航,其中包含主要的应用程序和功能,使用户可以轻松地进入不同的模块。 消息中心用于显示来自其他应用程序的通知,例如电子邮件或要完成的任务。 主视图是QML-Qianwindow-v1的核心区域,其中包含常见的功能和工具,例如打开的文件、书签和搜索栏。 小部件区域用于显示用户选择的小部件,例如天气预报和日历。 设置菜单区域包含应用程序的设置菜单,用户可以在此处更改应用程序的选项、主题和常规设置。 总体来说,QML-Qianwindow-v1版本的界面设计非常简洁,用户友好,易于使用。它增强了用户的生产力和效率,为用户提供了一种令人愉悦的使用体验。 ### 回答3: QML-QianWindow-v1是一种基于Qt QML开发的简单易用的窗口界面库。其设计风格简洁明了,适用于各种桌面应用开发。 该库主要由三个部分组成:Title Bar、Main Body和Sidebar。其中,Title Bar是窗口的标题栏,可以自定义标题、图标、按钮、菜单等。Main Body是页面的主体内容,可以显示各种控件、窗口和布局。Sidebar是侧边栏,可以显示常用的菜单、工具、快捷方式等。 在QML-QianWindow-v1中,可以使用QianWindow来创建窗口。QianWindow提供了常用的窗口操作方法,例如最小化、最大化、关闭等。同时,该库还提供了很多常用的QML组件,例如按钮、文本框、下拉框、列表框等,这些组件可以方便快捷地进行页面设计。此外,在QML-QianWindow-v1中还支持自定义样式,可以根据需要修改组件的颜色、形状、大小等。 QML-QianWindow-v1的界面设计风格简洁明了,同时具有一定的美观度。尤其是Title Bar部分的设计非常灵活,可以根据需要自由定制。Main Body部分支持多种布局方式,可以满足不同页面设计的需求。Sidebar部分则提供了丰富的快捷操作方式,提高了用户的使用效率。 总的来说,QML-QianWindow-v1是一款非常实用的界面库,可以方便快捷地进行桌面应用开发。无论是初学者还是有经验的开发者,都可以轻松使用该库进行界面设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值