1Qt概述
1.1认识Qt
Qt是一种跨平台的应用程序和用户界面框架,使用c++ 语言开发,由Qt Company(开发维护Qt的一个公司)支持和维护。Qt框架广泛应用于开发GUI应用程序,同时也可以开发非GUI程序,如命令行工具和服务器。Qt常用于电脑桌面应用开发,而电脑桌面应用开发又是前端开发中的一个分支。再说白一点,Qt就是用来搞前端的。
那么作为众多前端开发技术中的一员,Qt又有哪些特点呢?
1.2Qt的核心特性
- 跨平台性:可跨平台是Qt最突出的特点之一.支持多个桌面操作系统(Windows、macOS、Linux)和移动操作系统(iOS、Android)。
- 信号与槽机制:信号即事件,槽即响应这些事件的方法。这是Qt的一个核心概念,也Qt进行事件驱动编程的方式。
- 模块化与工具:根据设计需求选择相应的模块。Qt配备了强大的工具,如Qt Designer(界面设计)、Qt Creater(集成开发环境)和其它辅助工具。
1.3Qt的发展历史
- 1991年:挪威Trolltech(奇趣)公司的创始人Haavard Nord和Eirik Chambe-Eng首次提出Qt的概念,试图开发一个跨平台的C++图形化用户界面。
- 1995年:Qt的第一个版本被Trolltech发布,主要用于UNIX和Linux平台。
- 1996年:推出了支持windows平台的Qt版本,大大扩展了Qt的应用市场和应用范围。
- 2001年:Qt3.0发布,引入了网络支持和XML处理。
- 2008年:诺基亚收购了Trolltech公司,并将Qt作为软件开发的核心软件。
- 2010年:发布Qt4.7,引入Qt Quick,一个用于创建动态用户界面的新框架。
- 2012年:Qt的开发和维护权转让给了现在的Company公司。同年发布Qt5.0。
- 2020年:推出Qt6.0.这一版本在保持向后兼容的同时,优化了数据处理和3D图形的能力,提供了更多现代化的开发特性。
Qt的发展依赖于活跃的开发者社区。每年Qt都会有多次的迭代和更新,每个主要版本的发布都会带来显著的改进和新功能。
Qt的版本分为商业版和开源版,商业版一般是企业在用,作为初学者使用开源版就足够了。
1.4QtSDK的下载和安装
Qt SDK(Software Development Kit)是一个全面的开发工具集,专为Qt开发者设计,包含了创建Qt应用程序所需的所有工具和库。这个工具集旨在提供一站式的解决方案,以简化安装和配置过程,让开发者能够快速启动并进行Qt项目开发。
点击进去之后选择一个版本进行下载,由于是国外的网站,下载的速度是很慢的,有需要的朋友可以私我,微信发给你。
下载完之后,直接默认安装就行了。
2.创建Qt项目
弹出一个对话框,选择Qt Widgets Application
接下来为项目命名,并确定路径。建议命名和路径都不要带中文,因为可能在以后导致找不到文件等错误(教训)
接下来在Build system选择构建系统工具,qmake用于自动生成makefile文件。
选择编译套件,其中Qwidget表示一个用户界面的主窗口。是所有用户界面的基类,提供了基本的应用程序窗体功能。
选择翻译文件,这些文件允许开发者为不同的语言环境提供不同的文本翻译,使得应用程序可以支持多语言用户界面。
编译套件提供了工具和库,使得开发者可以构建和编译Qt应用程序。
创建成功之后就是以下界面:
我们可以看到,创建的项目里面会自动的生成了一些文件,这些文件跟我们刚才选的选项有关。下面我们来分析这些文件的作用
2.1分析初始化文件
24-5-9.pro
文件:是一个项目文件,用于定义整个项目的配置和构建规则。它被qmake
工具用来生成Makefile
,从而指导编译过程。widget.h
:这是一个头文件,包含Widget
类成员以及函数的声明。Widget
类即窗口类。main.cpp
:应用程序的入口点,负责启动程序,创建和显示窗口。比如创建Widget
类的实例对象。widget.cpp
:包含Widget
类的具体实现,实现了在widget.h
中声明的方法。包括窗口的构造函数,事件处理等。- widget.ui:这是一个XML格式的用户界面文件,用于Qt Designer。它定义了图形用户界面的布局和属性,如按钮、文本框和其他控件的位置和样式。widget.cpp中的代码通常通过调用Ui::Widget类加载和使用这个文件来构造GUI。Ui::Widget类是由uic工具从widget.ui自动生成的。
总结
qmake
工具生成的.pro
文件定义了整个项目的构建配置,main.cpp
文件设置程序的入口和主窗口,widget.cpp/widget.h
文件定义和实现了主窗口的功能,比如点击某个按钮产生什么效果等。widget.ui
则负责描述窗口的视觉布局。
2.2Widget类
其中查看widget.h
文件代码我们可以发现,Widget
类继承自QWidget
类,QWidget
类是所有用户界面的基类。
正是因为继承,Widget
类才能使用了QWidge
类提供的所有属性和方法,例如处理用户输入、显示输出、管理窗口等。
2.3main.cpp
2.4Qt Designer
Qt Designer
是Qt开发环境中的一个强大的工具,允许开发者通过图形化界面来设计和构建CUI。它是一个所见即所得的编辑器,使得创建用户界面变得简单而直观。
设计模式就是Designer模式
设计好的界面被保存为XML格式的 .ui 文件,这些文件可以被 Qt 的 uic(用户界面编译器)工具自动转换为相应的 C++ 代码,也可以在运行时直接加载。所以我们构建用户界面布局有两种方式,一种是借用Designer模式生成,一种是纯代码生成,可混合使用。