
[2025精修版]QtQuick QML入门进阶教程
文章平均质量分 70
本专栏介绍C++ QtQuick QML入门,QML基本控件使用,QML自定义控件,QML 3D,QML与C++的交互方式等知识。也可以学习我的课程https://edu.youkuaiyun.com/course/detail/40003?spm=1001.2014.3001.5507,提供全部源码与答疑。
优惠券已抵扣
余额抵扣
还需支付
¥59.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
令狐掌门
C++程序员,出版过《C++零基础入门视频教程》、《Qt高级进阶视频教程》、《C++ Qt6 QtQuick/QML入门进阶视频教程》、《OBS源码分析与桌面录制视频教程》、《PyQt PySide6零基础入门与项目实战》。
展开
-
C++ Qt6 QtQuick/QML入门进阶与项目实战视频教程
C++ Qt这些年在PC客户端、嵌入式、汽车座舱仪表等领域应用很广泛,例如剪映专业版、微信4.0、亿图脑图、Steam、美图秀秀、腾讯会议、钉钉(部分模块)等都是使用C++ QWidget/QML开发。特别是QML这种声明式UI开发更加快捷,QML的界面开发效率相对于QWidget更快速,界面效果更好,QtQuick/QML在Qt6版本也逐渐完善了,使用QML进行客户端开发是个不错的选择。原创 2024-11-07 13:46:15 · 1964 阅读 · 0 评论 -
QtQuick QML教程(1): Qt Quick与qml介绍
1 什么是Qt Qucik? Qt Quick是QtSDK4.7中引入的一种新的界面开发框架,使用QtQuick,你可以快速、 轻松地创建供移动和嵌入式设备使用的动态触摸式界面和轻最级应用程序,这也是它被命名 为Quick的原因. Qt Quick包括描述性语言QML、语言运行时、 大量的用户界面元素、Qt Creator对QML的完美支持、Qt ...原创 2020-04-27 21:32:48 · 13395 阅读 · 2 评论 -
QtQuick QML教程(2):qml语法介绍
qml一个普通的文本文件,后缀是.qml, 一个qml文件主要由两部分组成:(1) import语句 :这个就像C++中的头文件, 使用 import 导入qml需要的相关模块,可以查询Qt文档进行导入,注意每个版本的Qt模块声明可能都不同,相比于QWidget项目,QtQuick的变动是很大的;(2) QML对象树 :根对象是Window, 然后可以在Window中添加各种控件,例如按钮,文本,菜单等。原创 2023-09-17 21:15:30 · 299 阅读 · 0 评论 -
QtQuick QML教程(3):qml渲染引擎介绍
Qt Quick 的渲染是由 Qt Quick Scene Graph 负责的,这是一个为了 Qt Quick 而设计的硬件加速渲染引擎。在 Qt 5.14 版本中,Qt 引入了一个新的抽象层,称为 Rendering Hardware Interface (RHI),其目的是允许 Qt Quick 使用不同的底层图形 API 进行渲染,其中就包括 Direct3D 11。需要注意的是,这个渲染流程是在 Qt Quick 的渲染线程中进行的,这意味着它不会阻塞 UI 线程,可以保证 UI 的流畅性。原创 2023-11-23 22:58:36 · 1130 阅读 · 0 评论 -
QtQuick QML教程(4):qml Button用法介绍
QML Button基本用法与自定义Button原创 2020-04-27 21:33:36 · 17053 阅读 · 3 评论 -
QtQuick QML教程(5):qml锚布局anchors的用法介绍
QML的布局方法是anchors,锚。例如界面上四个按钮,可以用绝对坐标 (x, y) 设置他们的位置, 代码如下:import QtQuick 2.12import QtQuick.Window 2.12import QtQuick.Controls 2.5Window { visible: true width: 320 height: 48...原创 2020-04-27 21:37:06 · 9513 阅读 · 4 评论 -
QtQuick QML教程(6):qml布局管理器介绍与代码演示
Qt Quick中的布局管理器与Qt Widgets中的相似,它与定位器的不同之处在于:布局管理器会自动调整子Item的尺寸来适应界面大小的变化。原创 2023-09-19 21:41:22 · 362 阅读 · 0 评论 -
QtQuick QML教程(7):QML元素定位器:Row、Colum、Grid、Flow、定位器嵌套以及Repeater用法
是的,model是Repeater的一个属性。这个属性定义了Repeater应该重复的数据模型。一个数字,表示要重复的次数。一个列表模型,如ListModel。一个数组,如。其他 QML 数据模型,如等。在给出的示例中,model属性被设置为一个字符串数组,这意味着Repeater将为数组中的每个字符串创建一个组件实例。在这种情况下,你可以使用modelData属性来访问当前条目的数据。原创 2023-09-19 00:19:27 · 729 阅读 · 0 评论 -
QtQuick QML教程(8):qml分裂器布局SplitView使用介绍
本篇博客介绍qml分裂器布局SplitView的使用原创 2024-08-15 22:22:51 · 293 阅读 · 0 评论 -
QtQuick QML教程(9): QML矩形框控件Rectangle用法
QML提供了矩形控件代码如下:import QtQuick 2.12import QtQuick.Window 2.12Window { visible: true width: 640 height: 480 title: qsTr("Hello World") Rectangle{ width: 120 ...原创 2020-04-29 19:54:18 · 5896 阅读 · 2 评论 -
QtQuick QML教程(10):Label、TextField用法介绍
Label用法代码import QtQuick 2.12import QtQuick.Window 2.12import QtQuick.Controls 2.5Window { visible: true width: 640 height: 480 title: qsTr("Hello World") Label { ...原创 2020-04-29 20:04:30 · 5644 阅读 · 4 评论 -
QtQuick QML教程(11):qml Textinput 、TextField、TextEdit、TextArea用法介绍
是 Qt Quick Controls 2 中的一个高级控件,它提供了一个更为完整的用户界面,包括边框、背景、图标等。它是为了更好的桌面和移动设备体验而设计的。元素中,你不能直接设置一个边框属性,因为它主要用于纯文本输入并且没有提供直接的视觉样式。然而,你可以通过组合使用其他元素,如。是 Qt Quick 中的一个简单的文本输入控件,它可以显示和编辑单行纯文本。它是低级别的,通常没有图形化的边框或其他装饰。模块,并确保你的项目配置正确地链接了这个模块。属性提供一个小的内边距,以防止文本紧贴边框。原创 2023-09-20 23:36:10 · 762 阅读 · 0 评论 -
QtQuick QML教程(12):单选按钮RadioButton的用法及自定义
一RadioButton的简单用法QML的单选按钮是RadioButton,例如下面的界面实现代码如下:RadioButton { id:rb1 checked: true text: qsTr("First")} RadioButton { id:rb2 text: qsTr("Second")}RadioButton { id:rb...原创 2020-05-03 23:52:16 · 7975 阅读 · 0 评论 -
QtQuick QML教程(13):复选框CheckBox
QML的复选框是CheckBox,使用代码如下:import QtQuick 2.12import QtQuick.Window 2.12import QtQuick.Controls 2.5import QtQuick.Layouts 1.12Window { visible: true width: 640 height: 480 title: ...原创 2020-05-04 00:19:07 · 4636 阅读 · 0 评论 -
QtQuick QML教程(14): 自定义CheckBox
QML默认的CheckBox是打√,可以自定义实现如下效果代码import QtQuick 2.12import QtQuick.Window 2.12import QtQuick.Controls 2.5Window { visible: true width: 640 height: 480 title: qsTr("自定义CheckBox...原创 2020-05-04 00:28:44 · 2351 阅读 · 1 评论 -
QtQuick QML教程(15):QML双向滑动控件RangeSlider
例如下面的控件可以双向滑动,该控件在QML中叫RangeSlider demo代码如下:import QtQuick 2.12import QtQuick.Window 2.12import QtQuick.Controls 2.5Window { visible: true width: 640 height: 480 ...原创 2020-05-04 00:13:57 · 2514 阅读 · 0 评论 -
QtQuick QML教程(16) : QML圆形延时按钮
QML提供了延时按钮DelayButton,我们可以对其自定义,如下图: 代码import QtQuick 2.12import QtQuick.Window 2.12import QtQuick.Controls 2.5Window { visible: true width: 640 height: 480 titl...原创 2020-05-04 00:41:21 · 2630 阅读 · 0 评论 -
QtQuick QML教程(17) : qml C++交互介绍
qml和C++可以相互调用,可以在qml代码中调用C++的类对象,也可以用C++类来获取qml的控件对象,下面分别介绍这两这种用法qml调用C++ Qt 提供了两种在 QML 环境中使用 C++对象的方式∶ 方式1:在C+中实现一个类,注册为 QML 环境的一个类型,在 QML 环境中使用该类型创建对象。 方式2:在 C++中构造一个对象,将这个对象设置为 QML 的上下文属性,在QML 环境中直接使用该属性。 不管哪种方式,对要导出原创 2021-03-20 18:29:30 · 4594 阅读 · 0 评论 -
QtQuick QML教程(18): Item介绍
Item的定义Qt助手的解释The Item type is the base type for all visual items in Qt Quick.All visual items in Qt Quick inherit from Item. Although an Item object has no visual appearance, it defines all the attributes that are common across visual items, such as x原创 2021-03-21 19:17:50 · 1834 阅读 · 0 评论 -
QtQuick QML教程(19): 鼠标键盘事件处理
键盘事件qml对键盘的处理,处理利用Keys,例如按键按下的处理:pressed(KeyEvent event)This signal is emitted when a key has been pressed. The event parameter provides information about the event.The corresponding handler is onPressed.类似于Qt的keyPressEvent事件,在qml中也是一样,如果要处理按键按下,就调用Ke原创 2021-03-21 20:01:38 · 1586 阅读 · 0 评论 -
QtQuick QML教程(20):等待控件
qml提供了等待控件BusyIndicator代码如下:import QtQuick 2.12import QtQuick.Window 2.12import QtQuick.Controls 2.5Window { visible: true width: 640 height: 480 title: qsTr("Hello World") BusyIndicator{ id:busy running: true原创 2021-03-21 20:44:07 · 1011 阅读 · 0 评论 -
QtQuick QML教程(21):qml ProgressBar用法介绍
你可以通过修改backgroundprogress等。width: 300height: 30value: 0.6radius: 15radius: 15上述示例中,我们自定义了的背景为lightgray色,并将进度条的颜色设置为green。这只是的一些基本用法。在实际应用中,你还可以结合其他 QML 组件和属性来创建更丰富的交互和外观效果。希望这些示例能帮助你理解和使用。原创 2023-09-21 00:25:00 · 558 阅读 · 0 评论 -
QtQuick QML教程(22):图元控件Image
Image显示图片,只要是Qt支持的,比如JPG、PNG、BMP、GIF、sVG等都可以显示。它只能显示静态图片,对于GIF等格式,只会把第一帧显示出来。如果要显示动画,则可以使用 AnimatedSprite 或者 AnimatedImage。 Image 的 width 和 height 属性用来设定图元的大小,如果没有设置它们,则使用图片本身的尺寸,如果设置了width 和 height,图片显示时会进行相应的拉伸。原创 2021-03-21 20:52:17 · 3043 阅读 · 0 评论 -
QtQuick QML教程(23):qml Drawer用法介绍
在QML中,`Drawer` 是一个用于实现从屏幕边缘滑出的面板的控件。它属于Qt Quick Controls 2模块,通常用于移动应用中,作为一个从屏幕的左侧或右侧边缘滑出来显示导航或工具选项的交互元素。原创 2023-12-05 19:38:49 · 689 阅读 · 0 评论 -
QtQuick QML教程(24):qml GroupBox用法介绍
是 QML 中的一个组件,用于为其内容提供一个带标题的框架。它可以用来组织和区分界面中的相关内容。在这个例子中,我们创建了一个标题为 “User Information” 的。提供了一个明确的视觉边界,使得用户可以知道这些控件是相关的。的属性来自定义其外观和行为,例如更改标题、颜色、大小等。原创 2023-09-21 00:28:41 · 501 阅读 · 0 评论 -
QtQuick QML教程(25):qml列表控件ListView用法介绍
ListView 是 Qt Quick (QML) 中的列表控件,用于创建一个可以滚动的列表。每个列表项都是根据模型(Model)来创建的,它可以是静态的列表或者是动态的数据集合,例如从数据库中获取的数据。视图(View)将这些数据以列表的形式展现出来,而代理(Delegate)则定义了如何将每个数据项渲染到视图中。原创 2023-12-04 21:35:09 · 1806 阅读 · 0 评论 -
QtQuick QML教程(26):qml Flickable用法介绍
`Flickable` 是 Qt Quick 中的一个基础组件,它提供了触摸滑动功能,允许用户通过拖拽和惯性滑动来移动内容。这对于创建可以滚动的列表、图片浏览器或其他需要滚动操作的界面组件来说非常有用。原创 2023-12-07 15:45:52 · 972 阅读 · 0 评论 -
QtQuick QML教程(27):qml ScrollView用法介绍
ScrollView是一个容器类型,它可以用来创建可以滚动的视图,使得它内部的内容可以滚动。在Qt Quick/QML中,并没有一个直接对应于Qt Widgets中的QScrollArea的组件。这个例子是基于Qt Quick Controls 2编写的,你可以在Qt 5.7或更高版本中运行它。如果你使用的是更旧的版本,可能需要调整导入语句或组件的用法。的高度时,你可以通过滚动来查看它们。在这个例子中,我们使用了一个垂直的。以下是一个简单的例子,演示如何在QML中使用。,我们创建了一系列的这样的。原创 2023-12-14 21:08:22 · 1244 阅读 · 0 评论 -
QtQuick QML教程(28):自定义TabView
TabView是 QML 中的一个组件,用于创建带有多个标签页的界面。每个标签页都有自己的内容,并且用户可以点击标签来切换不同的内容视图。不过在Qt6中不在支持TabView, TabBar 和 StackView 来模拟 TabView 的功能。原创 2023-09-21 00:47:20 · 682 阅读 · 0 评论 -
QtQuick QML教程(29):qml Combobox用法介绍与代码演示
除了使用textRole外,你还可以使用delegate来自定义下拉项的显示。ComboBox {height: 40height: 30Text {在这个示例中,我们使用delegate自定义了下拉项的显示方式,并为每个项添加了一个背景色。这只是ComboBox的一些基本用法。在实际应用中,你还可以利用其他属性和方法来实现更多的功能和自定义选项。希望这些示例能帮助你理解和使用ComboBox。原创 2023-09-21 00:15:44 · 751 阅读 · 0 评论 -
QtQuick QML教程(30):qml显示网页
注意:Qt自带的WebEngine无法播放视频,CEF也一样,如果需要播放网页中的视频,则需要自己编译Qt WebEngine模块,编译很麻烦,特别容易出错。如果你使用的是Qt的在线安装程序,你可以通过Qt Maintenance Tool来添加这个模块。确保在部署应用程序之前进行充分的测试,以确保网页内容在所有目标平台上都能正确显示。来显示网页的简单示例,显示我的Qt视频教程页面。组件,可以用来在QML中显示和交互网页。以下是如何在QML中使用。QML显示网页需要使用。首先,确保你已经安装了。原创 2023-09-14 22:12:26 · 789 阅读 · 0 评论 -
QtQuick QML教程(31):qml字体加载器FontLoader
`FontLoader` 是 Qt Quick (QML) 中的一个元素,用于动态加载字体。当你需要在你的应用程序中使用自定义字体而不是默认字体时,可以使用 `FontLoader`。使用 `FontLoader` 可以在运行时加载字体,而不需要在编译时包含它们。原创 2023-12-14 21:12:48 · 671 阅读 · 0 评论 -
QtQuick QML教程(32):qml Loader使用介绍
QML Loader 是 Qt Quick 框架中的一个元素,它允许你动态地加载和卸载 QML 组件。原创 2023-11-23 21:06:41 · 634 阅读 · 0 评论 -
QtQuick QML教程(33):qml Page用法介绍
在QML中,`Page`和`Window`是两种不同的元素,它们在用户界面设计中扮演不同的角色。原创 2023-12-14 21:14:56 · 762 阅读 · 0 评论 -
QtQuick QML教程(34):qml应用程序启动时显示一个初始屏幕
很多PC端应用程序都会有启动页面,用于加载一些数据,但是在qml中并没有一个直接的 `SplashForm` 或 `SplashScreen` 组件。通常,开发者需要自定义一个 Item 或者 Window 来作为启动画面。原创 2023-12-07 15:46:09 · 807 阅读 · 0 评论 -
QtQuick QML教程(35):qml QtObject用法介绍
`QtObject` 是 Qt/QML 中的一个基础类型,通常用作创建一个没有 UI 的(不渲染任何东西的)纯逻辑对象。可以使用它来组织代码、存储状态或者作为属性和方法的容器。原创 2023-12-04 23:05:46 · 958 阅读 · 0 评论 -
QtQuick QML教程(36):qml property使用介绍
QML 中的属性property是一个重要的概念,用于定义和访问QML对象的数据。在QML中,属性可以是各种类型,包括基本数据类型(如int, double, string)和复杂类型(如对象和列表)。属性在QML中可用于数据绑定、事件处理和界面更新。原创 2023-12-04 23:02:31 · 1389 阅读 · 0 评论 -
QtQuick QML教程(37):qml视频播放组件介绍
使用ThresholdMask或其它技术进行实时视频处理,在实际开发中有很多应用,例如在视频聊天应用中对背景进行模糊处理或替换背景,或者在视频监控中进行运动检测和区域监控。它属于 Qt Graphical Effects 模块,通过使用高效的模糊算法,对图像或组件进行模糊处理,适用于需要实时渲染和高性能的场景。在QML里,MediaPlayer 是用于播放音频和视频文件的组件。上面的QML 代码中使用了 ThresholdMask 组件对视频帧进行二值化处理,并使用另一个图像作为掩模源来控制二值化的效果。原创 2024-08-02 23:34:41 · 377 阅读 · 0 评论 -
一文学会qml自定义组件
代码结构:如果是Qt6以上版本,使用CMake构建Qt项目的话,需要手动创建MyButton.qml文件,然后再CMakeLists.txt里引入,如下图:ctrl s保存,5秒钟左右,MyButton.qml就自动导入进来了。width: 100height: 50Label {id: label在这个例子中,我们定义了一个Rectangle作为根元素,并添加了一个MouseArea来处理点击事件。我们还定义了一个text属性,它是Label元素的text属性的别名。原创 2023-11-25 00:00:00 · 1186 阅读 · 0 评论 -
Qt Quick qml自定义控件:qml实现电池控件
电量条使用矩形Rectangle来表示,用Repeater重复绘制10个矩形即可。在main.qml中使用定时器模拟电量数值,在实际开发中,需要接入实际的数值。以上代码在Qt6.7.1通过测试测试。原创 2024-07-14 16:07:27 · 686 阅读 · 0 评论