Qt的介绍
Qt是一个跨平台的C++图形用户界面(GUI)应用程序开发框架,主要用于开发GUI程序,如桌面和移动应用程序,同时也适用于开发非GUI程序,如控制台工具和服务器,总的来说它是一个功能强大且灵活的GUI应用程序开发框架,适用于各种规模的软件开发项目。
我们先举个简单的例子便于快速了解Qt:
假设你想开发一个简单的音乐应用程序,这个应用程序需要在Windows、Linux和MacOS上运行,并且需要具有以下功能:
-
显示一个音乐库中的所有歌曲列表;
-
允许用户通过点击某一首歌来播放它;
-
显示当前播放的歌曲;
-
提供前进和后退按钮,用于在歌曲之间切换。
上面的功能我们均可以利用Qt来实现,使用Qt提供的以下类和组件:
-
QListWidget:用于显示歌曲列表。这个类提供了一个列表框,可以显示歌曲的名称、艺术家等信息。
-
QPushButton:用于创建播放、暂停、前进、后退等按钮。这个类提供了各种按钮的外观和行为,可以根据需要进行定制。
-
QMediaPlayer:用于播放音乐。这个类可以连接到不同的音乐源(如本地文件或在线流媒体),并提供控制音乐播放的功能。
-
QLabel:用于显示当前播放的歌曲信息。这个类提供了一个文本标签,可以显示任何需要的信息。
通过使用上面这些Qt类和组件,就可以编写一个简单的GUI音乐应用程序,并使其在多个平台上运行,而无需对每个平台进行单独的适配。这就是Qt的跨平台特性,这也是它为什么被广泛应用于各种软件开发项目中的原因。
因此由上面的例子我们可以知道Qt具有以下主要特性:
-
跨平台:Qt支持多种操作系统,如Windows、Linux、macOS等,以及不同的硬件架构。这一特性使得开发者可以编写一次代码在不同的平台上开发和部署Qt,而不需要对每个平台进行单独的适配。Qt应用程序。
-
面向对象:Qt使用C++语言,并采用面向对象编程思想进行设计。通过使用类和对象,开发者可以更好地组织和管理代码,并实现代码的可重用性和扩展性。
-
丰富的API:Qt提供了大量的内置类和函数,涵盖了图形、网络、数据库、多媒体等多个领域。这些API使得开发者可以轻松地实现各种功能。
-
支持脚本语言:除了C++之外,Qt还支持使用Python、Ruby等脚本语言进行开发。这使得开发者可以使用更灵活的开发工具来构建Qt应用程序。
Qt的下载与安装
Qt的下载安装可以参考江苏学蠡信息科技有限公司拍摄的Qt下载安装简介视频,清晰易懂,视频连接如下:
【嵌入式-Linux QT开发实验(RK3399)】https://www.bilibili.com/video/BV1Fr4y1p7YJ?vd_source=7f1982c56a437c7b00c3695687b7086d
安装完成的Qt,具体情况如下图所示:
由此我们可以得出,Qt的基础开发就是利用Qt Creater进行开发!!!!
Qt Creator的介绍
下图是打开Qt Creator的界面情况介绍:
通过构建一张思维导图可以清晰的将Qt Creator界面的每个部分机器功能展现出来:
Qt的入门程序 — Hello World!
我们学习任何一种编程语言的时候,通常最先会编写的就是“Hello World”程序,因此这里我们也用Qt Creator 编写入门的第一个程序 — “Hello World”程序,初步了解Qt Creator 设计应用程序的基本过程,从而对使用Qt Creator 编写Qt C++ 应用程序建立初步的了解。
在程序建立的每一个步骤中可能会涉及到一些知识,我们将会在对应的步骤下做详细解释:
-
step1: 单击Qt Creator的主菜单栏中的文件选项->新建文件或项目,出现如下图所示的对话框。在这个对话框里选择需要创建的项目或文件的模板。
从上面的图片中我们可以看到中间的列表框中列出了可以创建的应用程序的模板,各类应用程序的特点及其应用场景如下:
- Qt Widgets Application: 支持桌面平台的有图形用户界面(GUI) 界面的应用程序。 例如,一个使用Qt小部件(widgets)的文本编辑器应用程序,包括菜单、工具栏、文本框、按钮等组件,以及实现与用户交互的逻辑。
- Qt Console Application: 控制台应用程序,无GUI 界面,一般用于学习C/C++ 语言,只需要简单的输入输出操作时可创建此类项目。 例如,一个使用Qt的命令行工具,用于管理和操作文件系统。
- Qt Quick Application: 创建可部署的Qt Quick 2 应用程序。Qt Quick 是Qt 支持的一套GUI 开发架构,利用Qt Quick 可以设计非常炫的用户界面,一般用于移动设备或嵌入式设备上无边框的应用程序的设计。 例如,一个使用Qt Quick构建的播放器应用程序,具有高度可定制的UI和动画效果。
- Qt Quick Controls 2 Application: 创建基于Qt Quick Controls 2 组件的可部署的Qt Quick 2 应用程序。 例如,一个使用Qt Quick Controls 2构建的社交媒体应用程序,具有自定义的主题和样式。
- Qt Canvas 3D Application: 创建Qt Canvas 3D QML 项目,也是基于QML 语言的界面设计,支持3D 画布。 例如游戏开发、虚拟现实、科学可视化等,可以使用Canvas 3D API来定义3D绘图和渲染操作,并通过C++编写逻辑代码。
-
step2: 设置项目名称和项目存储位置设置,需事先在D:\c_Develop\目录下创建qtdemo 目录
- step3: 选择编译工具
图片上展示的编译套件工具仅有默认安装的Desktop Qt 5. 9. 0 MinGW 32.bit,事实上我们可以自行添加编译套件。
下面我以添加构建学蠡信息科技有限公司的lpkt030试验箱的嵌入式环境,以在linux上的Qt 的交叉编译工具为例,Windows上的添加需要找到对应的Windows的相同的
sdk 除了提供uboot,kernel 等开发所以需要的交叉编译工具之外,也提供qt 的交叉编译工具,前提
是要编译好sdk,编译工具位于:
下面的操作添加qt 交叉编译所需的c 和c++编译器
添加gcc 编译器和++编译器,如下图所示
添加qmake
添加kit
此时再创建项目的时候,当到选择编译工具这一步骤时,会出现我们添加的lpkt组件
- step4: 输入类信息,在此界面中选择需要创建界面的基类
基类的选择有三种,分别为QMainWindow、QWidget和QDialog,它们在GUI应用程序中具有不同的角色和用途。
我们举上面音乐播放器应用程序的例子,来学习这三个Qt的基类的作用和区别:
1、QMainWindow:
QMainWindow可以作为主窗口,提供应用程序的主要结构和布局。它包括菜单栏、工具栏、状态栏等元素,以及用于管理这些元素的布局和组织。
例如:
在音乐播放器应用程序中,可以使用QMainWindow来创建主窗口,其中包含以下元素:
- 菜单栏:包括文件、编辑、播放、设置等菜单,用于提供应用程序的主要功能。
- 工具栏:包含播放、暂停、上一曲、下一曲等按钮,方便用户快速控制音乐的播放。
- 状态栏:显示当前播放的歌曲信息,例如歌曲名称、艺术家名称、进度条等。
通过使用QMainWindow,可以将这些元素组织在一个统一的框架中,并提供默认的行为和布局。
2、 QWidget:
QWidget可以作为独立的窗口或容器,用于承载其他GUI元素。
例如:
在音乐播放器应用程序中,可以使用QWidget来创建一些额外的窗口或面板:
- 播放列表:显示当前播放的歌曲列表,允许用户管理和选择要播放的歌曲。
- 均衡器:提供可视化均衡器,允许用户调整音乐的音量和音效。
这些窗口或面板可以作为独立的QWidget对象,通过添加到主窗口中或以模态方式显示来与用户进行交互。
3、QDialog:
QDialog可以用于创建对话框和弹出窗口,用于与用户进行交互和显示信息。
例如:
在音乐播放器应用程序中,可以使用QDialog来创建以下对话框:
- 文件对话框:用于打开和保存音乐文件。
- 偏好对话框:允许用户配置应用程序的偏好设置,例如界面、音频效果等。
- 关于对话框:显示有关应用程序的版权信息和版本信息。
这些对话框可以使用QDialog类来创建,并使用默认的按钮和标签来与用户进行交互。通过使用QDialog,可以提供一种模态的交互方式,确保用户在完成操作之前无法离开对话框。
- step5:
- step6:点击完成后
左侧的demo项目文件,我们利用树状图介绍其功能:
- step7: 双击文件目录树中的文件mainwindow.ui,出现如下图所示的窗体设计界面:
- step8:在组件面板的Display Widgets 分组里,将一个Label 组件拖放到设计的窗体上面。双击刚刚放置的Label 组件,可以编辑其文字内容,将文字内容更改为“Hello, World!”。还可以在窗口右下方的属性编辑器里编辑标签的Font 属性,Point Size(点大小)更改为15,勾选粗体。
单击主窗口左侧工具栏下方的“运行”按钮,程序运行的界面如下图所示。这就是一个标准的桌面应用程序,我们采用可视化的方式设计了一个窗口,并在上面显示了字符串“Hello,World!”。