QML学习(二) Qt Quick模块及QtQuick.Controls模块基础组件分类说明
QtQuick 模块与QtQuick.Controls模块 提供了丰富的可视化组件,以下详细介绍:
QtQuick模块
基础图形组件
Rectangle(矩形):用于绘制矩形区域,可设置其宽度、高度、颜色、边框等属性。常用于创建各种容器、背景或具有特定形状的区域 。
Circle(圆形):可绘制圆形图形,通过设置半径等属性来确定其大小和位置,在需要展示圆形元素如头像、图标等场景中较为常用。
Ellipse(椭圆):与圆形类似,可绘制椭圆形状,能分别设置长轴和短轴的长度,可用于一些特殊的图形设计或需要椭圆形状的场景 。
Line(直线):用于绘制直线段,可指定起点和终点的坐标,以及直线的颜色、宽度等属性,常用于绘制分割线、图表中的坐标轴等。
文本显示组件
Text(文本):用于显示静态文本内容,可设置文本的字体、字号、颜色、对齐方式等属性,是在界面中展示文字信息的常用组件 。
TextEdit(文本编辑):允许用户编辑多行文本内容,类似于一个简单的文本编辑器,可设置文本的格式、滚动条等属性,适用于需要用户输入较长文本的场景,如文章编辑、评论输入等。
TextField(文本字段):用于用户输入单行文本信息,通常用于输入简短的文本,如用户名、密码、搜索框等场景。
按钮及交互组件
Button(按钮):用于触发特定的操作或事件,可设置按钮的文本、图标、样式等属性,用户点击按钮时会触发相应的信号,常用于提交表单、执行命令等交互操作 。
CheckBox(复选框):用于提供多项选择功能,用户可以勾选或取消勾选,可设置复选框的文本、状态等属性,常用于表示选项的选中与未选中状态,如选择兴趣爱好、设置权限等场景 。
RadioButton(单选按钮):用于在一组互斥的选项中选择一个,通常与 ExclusiveGroup 一起使用,确保同一组中的单选按钮只能有一个被选中,常用于选择性别、选择单一选项等场景 。
Slider(滑块):用于让用户通过滑动操作选择一个数值范围中的值,可设置滑块的最小值、最大值、步长、方向等属性,常用于调节音量、亮度、进度等场景 。
SpinBox(微调框):允许用户通过点击上下箭头按钮或直接输入数值来选择一个特定范围内的整数值,可设置数值范围、步长等属性,常用于输入数字参数,如设置年龄、数量等 。
布局管理组件
Row(行布局):将子组件按照水平方向依次排列,可设置子组件之间的间距、对齐方式等属性,适用于创建水平排列的一组组件,如菜单栏、工具栏等 。
Column(列布局):将子组件按照垂直方向依次排列,可设置子组件之间的间距、对齐方式等属性,常用于创建垂直排列的组件组,如表单中的输入项等 。
Grid(网格布局):将子组件按照网格状排列,可指定行数和列数,以及子组件在网格中的位置,适用于创建整齐的表格状布局,如图片展示网格、数据表格等 。
Flow(流布局):按照从左到右、从上到下的顺序依次排列子组件,当一行或一列排满时,会自动换行或换列,适用于动态排列组件,如根据窗口大小自动调整布局的场景 。
容器组件
Item(基础容器):是所有 QtQuick 可视化组件的基类,可作为其他组件的容器,用于组合和管理多个子组件,本身也具有一些基本的属性和方法,如位置、大小、可见性等。
GroupBox(分组框):用于将一组相关的组件组合在一起,并提供一个标题栏显示分组的名称,常用于对界面上的相关输入项或操作进行分组,提高界面的可读性和易用性 。
ScrollView(滚动视图):提供一个可滚动的区域,用于显示超出其自身大小范围的内容,可包含其他组件作为子组件,当内容过多时,用户可以通过滚动条查看全部内容,常用于显示长列表、大文本等场景 。
图像显示组件
Image(图像):用于显示图片文件,可加载本地文件或网络图片,支持多种图片格式,如 PNG、JPEG 等,可设置图片的大小、缩放模式等属性,常用于展示头像、产品图片、背景图片等 。
BorderImage(边框图像):专门用于处理具有边框的图像,可将一张图片分割成不同的区域,分别用于显示中心内容、边框等,常用于创建具有自定义边框效果的按钮、窗口等 。
进度指示组件
ProgressBar(进度条):用于显示某个操作的进度情况,可设置进度条的最小值、最大值、当前值等属性,以直观地展示任务的完成比例,常用于文件下载、数据加载等场景 。
BusyIndicator(忙碌指示器):用于表示某个操作正在进行中,通常以动画的形式显示一个旋转的图标或其他动态效果,提示用户等待操作完成,常用于长时间的后台操作,如网络请求、数据处理等。
Qt Quick模块
应用程序窗口相关
ApplicationWindow:对应 QMainWindow,用于创建顶层应用程序窗口,可设置窗口标题、大小、菜单、工具栏等属性 。
MenuBar:对应 QMenuBar,用于在窗口顶部创建横向菜单栏 。
StatusBar:对应 QStatusBar,用于提供状态栏,可显示应用程序的状态信息等 。
ToolBar:对应 QToolBar,可作为工具栏使用,能添加 ToolButton 和其他组件 。
Action:对应 QAction,提供能够绑定到导航和视图的抽象用户界面动作,可用于菜单项、工具栏按钮等触发相应操作 。
导航与视图相关
ScrollView:对应 QScrollView,提供滚动视图,用于在内容超出显示区域时进行滚动查看 。
SplitView:对应 QSplitter,可创建带有可拖动分割条的视图布局,方便用户调整各部分的大小 。
StackView:对应 QStackedWidget,基于栈的层叠布局,用于管理多个页面或视图,每次只显示一个页面 。
TabView:对应 QTabView,提供带有标签的基于栈的层叠布局,用户可通过点击标签切换不同的页面 。
基本控件相关
Button:按钮控件,用于触发操作,用户点击按钮时可执行相应的函数或操作 。
CheckBox:复选框控件,允许用户选择多个选项中的一个或多个 。
ComboBox:下拉框控件,用户可从预定义的选项列表中选择一个选项 。
GroupBox:带有标题和边框的容器,用于将一组相关的控件组合在一起 。
Label:文本标签,用于显示静态文本信息 。
ProgressBar:进度条控件,用于显示操作的进度,如文件下载进度、任务执行进度等 。
RadioButton:单选按钮控件,用于从一组互斥的选项中选择一个 。
Slider:滑块控件,用户可通过拖动滑块在一定数值范围内选择值 。
SpinBox:微调组件,用户可通过点击上下箭头或直接输入数值来选择一个特定的数值 。
Switch:开关控件,用于在两个状态(如开和关)之间切换 。
TextField:单行文本输入框,用于用户输入简短的文本信息 。
TextArea:多行文本输入框,可用于用户输入和编辑多行文本内容 。
ToolButton:在工具栏上显示的工具按钮,通常与 ToolBar 一起使用 。
菜单相关
Menu:对应 QMenu,用于创建菜单、子菜单、弹出菜单等 。
MenuSeparator:菜单分隔符,用于在菜单项之间添加分隔线,将不同功能的菜单项分组 。
MenuItem:菜单项,可添加到菜单栏或菜单中,用于执行具体的操作 。
其他组件
BusyIndicator:忙等示意组件,用于指示应用程序正在进行某项耗时操作,通常以动画的形式显示 。
Dial:旋钮控件,类似于 Slider,可用于选择一个数值 。
ItemDelegate:项目代理控件,用于在列表或表格中显示项目 。
ButtonGroup:按钮组控件,用于管理一组按钮的互斥选择 。
PageIndicator:页面指示器控件,用于指示当前页面的位置 。
SwipeView:允许用户通过横向滑动来导航页面 。
Pane:提供与应用程序样式和主题匹配的背景 。
Frame:一组逻辑控件的可视框架,用于划分一组功能接近的控件组 。
Page:支持页眉和页脚的样式页面控件,适用于创建具有特定页面布局的界面。
Qt Quick与QtQuick.Controls的区别:
功能方面
Qt Quick:是一个用于创建用户界面的模块,提供了可视化组件、模型视图支持、动画框架以及用于构建用户界面的更多功能,是 QML 类型和功能的标准库。
QtQuick.Controls:是基于 Qt Quick 的可重用 UI 组件库,提供了一系列如按钮、文本框、菜单等常见的用户界面控件,方便开发者快速构建应用程序的用户界面。
外观风格
Qt Quick:本身提供了基本的可视化组件和绘制功能,但在外观风格上相对较为基础和通用,需要开发者更多地自行定制和设计样式以满足特定的需求。
QtQuick.Controls:提供了更丰富的默认样式和主题,使应用程序具有更一致和美观的外观,并且在不同的平台上可以呈现出与该平台相适应的原生风格,如在安卓上呈现谷歌风格的控件。
控件使用便捷性
Qt Quick:需要开发人员从基本的图形元素和组件开始构建用户界面,对于一些复杂的控件,可能需要编写较多的代码来实现其功能和样式。
QtQuick.Controls:直接提供了现成的、可复用的控件,开发者可以直接使用这些控件,而无需从头开始创建,大大提高了开发效率,减少了开发时间和代码量。