基 础 入 门
01 Qt简介
官网:www.qt.io
Qt 是一个基于C++的 跨平台的 应用程序开发框架
目前支持三种语言:
C++QML
Python
跨平台:一次编写,到处编译
主流的平台都支持,如Windows、Linux、Android、MacOS ...
应用程序:
主要用于GUI程序开发,但又不仅仅是GUI,也可用于后台或底层程序开发开发框架:
有现成的库可供使用,不需要从零开始,节省时间/精力/金钱,提高开发效率...Qt始于1991年,中间历经多个版本,目前主流使用的是Qt5
从许可协议的角度,Qt还分为商业版本 和 开源版本
02 第一个Qt程序
1. 用QtCreator创建一个空的项目
欢迎--->new project --->其它项目---> empty qmake project
......
2. 在空的项目的pro文件中 添加模块:
QT += widgets
添加完成后,ctrl+s保存
3. 添加源文件
右键工程名--->添加新文件--->C++--->C++ source file--->起名为main
双击自动生成的main.cpp文件,写入如下代码:#include <QApplication> // 所有的QT界面程序必须加载此头文件,用于管理整个应用程序 #include <QWidget> // 空白界面类型 int main(int argc, char *argv[]) { // 实例化一个QApplication类型的对象,用于管理整个应用程序,如接收命令行参数 QApplication app(argc, argv); // 实例化一个空白界面对象,默认隐藏 QWidget w; // 显示界面 w.show(); // 让应用程序进入事件循环,让界面不退出,并能接收用户事件,如鼠标点击、键盘输入等... app.exec(); return 0; }
4. 执行(ctr+r)
03 Qt程序补充说明
Qt中所有的头文件都是以大写字母Q开头,Q后面的单词首字母还是大写的,头文件没有后缀,头文件名称也是类名称
所有的Qt界面应用程序 都必须包含QApplication类,用此类实例化对象,用于管理整个Qt项目Qt中的类型是按 功能 划分模块
模块有很多,跟界面相关的主要用到如下模块:
core 核心模块,其它所有的模块都依赖此模块,默认加载
gui 界面相关的功能模块,如字体、颜色、风格等,默认加载
widgets 界面元素(所有在界面上能看到控件)都放在此模块中,得自己在pro文件中添加,添加方式如下
QT += widgets
QT += core
QT += gui每个模块中都包含许多类,widgets模块中最核心的类型就是 QWidget
QWidget类有两个基类及许多派生类:
两个基类:
QObject 这是Qt类的层次关系中最顶层的基类,它提供了Qt最核心的功能:信号和槽
QPaintDevice 这也是一个顶层基类,该类及它的派生类 能够作为绘制设备使用它的派生类可分为两类:
界面类:
QMainWindow 就是包含菜单、工具栏、状态栏的界面
QDialog 对话框
控件类:
菜单、工具栏、状态栏、按钮、文本框、标签、组合框...
所有的控件都应该出现在某个界面上
pro文件:
所有的Qt项目中都必须有一个pro文件(工程管理文件),描述了整个项目中所有的东西(头文件/源文件/界面文件/模块/第三方库...)
影子构建:
QtCreator在默认情况下,把项目的源码(.h/.cpp/.ui/.pro...) 与 中间及结果(.o/Makefile/xxx...) 文件 分开存放,源码 就在项目文件夹里面,而中间及结果文件 跟随项目文件夹,与项目文件夹在同一个目录中
存放中间及结果文件的这个目录,称为构建目录,名称为:
build-项目名称-编译套件名-模式
例如:build-helloQt1-Desktop_Qt_5_9_1_GCC_64bit-Debugbuild目录可删除,只要重新运行/构建,都会自动生成
如果是从其它地方拷贝来的Qt项目,建议先删除这个build目录,再编译项目在源码目录下,还会自动生成一个额外的用户配置文件,它记录了该项目的当前环境,只要编译项目,就会自动生成
如果是从其它地方拷贝来的Qt项目,在打开项目之前,建议把这个用户配置文件删除
该文件的名字可能为:项目名.pro.user.xxx项目生成的可执行文件 默认情况下与 项目文件夹 同名,存放在build目录下