认识Qt

Qt是一套应用程序开发类库,和MFC不同,Qt是跨平台的。Qt支持PC和服务器的平台,包括Windows、Linux、macOS等,还支持移动和嵌入式操作系统,比如iOS、Embedded Linux、Android、WinRT等。跨平台意味着只需要一次编程,在不同平台上无需改动或只需少许改动后再编译,就可以形成在不同平台上运行的版本。

获取与安装

许可类型

  • 商业许可
  • 开源许可
    • LGPLV3
    • GPLV2/GPLV3

商业许可 - 允许开发者不公开项目的源代码,其Qt版本包含更多的模块(这些模块只存在于商业许可的版本),并能够获得Qt公司的计数支持。需要向Qt购买商业许可才能获得。

开源许可 - 无需支付,但是需要遵守相关规定。

版本

Qt版本更新很快,且版本更新时会新增一些类或停止维护一些以前版本的类,Qt 5和Qt 4就有较大区别,如果不是为了维护旧版本编写的程序,一定要选用最新版本的Qt进行开发。

下载和安装

从Qt官网可以下载最新版本的Qt软件,根据开发项目不同,Qt分为桌面和移动设备应用开发、嵌入式设备开发 两大类不同的安装包。

  • 桌面和移动设备应用开发 - PC、服务器、手机、平板电脑上运行的程序,免费下载使用
  • 嵌入式设备开发 - 物联网设备、汽车电子设备等特定的嵌入式设备

需要注册用户后才可以下载Qt安装程序,安装包分为在线和离线两种,为便于重复安装,最好下载离线安装包。

安装时需要选择想要安装的组件,其中有:

  • MinGW - Minimalist GNU for Windows 的缩写,是Windows平台上使用的GNU工具集导入库的集合
  • 用于UWP编译的模块 - Universal Windows Platform 的缩写,有不同编译器类型的UWP
  • 用于Windows平台上的MSVC编译器模块 - 如 msvc2015 32-bit 等,要安装 MSVC 编译器的模块,需要计算机上安装相应版本的Visual Studio
  • 用于Android平台的模块 - 如 Android x86 和 Android ARMv7
  • Sources - Qt源程序
  • Qt Charts - 二位图标模块,用于绘制各类型二位图标
  • Qt Data Visualization - 三维数据图表模块
  • Qt Purchasing、QtWebEngine、Qt Network Auth(TP)
  • Qt Script(Deprecated) - 已经过时的脚本模块

初步使用

设置

[Tools] - [Options]

  • Environment 可切换语言
  • Kits中可以设置编译工具

Windows Software Development Kit

第一个程序

项目创建流程

[File] - [New FIle or Project]

Qt Creator中可以创建多种项目:

  • Qt Widgets Application 支持桌面平台的有图形用户界面(Graphic User Interface,GUI)
  • Qt Console Application 控制台应用程序,无GUI界面
  • Qt Quick Application 创建可部署的Qt Quick 2应用程序,界面采用QML语言,程序采用C++,可以设计出非常炫酷的用户界面,一般用于移动设备或嵌入设备上无边框的应用程序设计
  • Qt Quick Controls 2 Application 创建基于Qt Quick Controls 2组件的可部署的Qt Quick 2应用程序
  • Qt Canvas 3D Application 创建Qt Canvas 3D QML项目,支持3D画布

在这里选择项目类型为 Qt Widgets Application,选择目录,再设置项目名称,这样在该目录下会创建一个项目文件夹。

选择编译工具,在编译项目时可以选择一个作为当前使用的编译工具,编译生成不同版本的可执行程序。

选择基类(base class),三种类型可以选择:

  • QMainWindow 是主窗口类,带有主菜单栏、工具栏和状态栏;
  • QWidget 是所有具有可视界面类的基类,选择QWidget创建的界面对各种界面组件都可以支持;
  • QDialog 是对话框类,可建立一个基于对话框的界面;

项目文件组成和管理

在项目名称节点下,分组管理着项目内的各种源文件,分别为:

  • xxx.pro 项目管理文件,包括一些对项目的设置项;

  • Headers分组,该节点下是项目内所有头文件(.h);

  • Sources分组,该节点下是项目内的所有C++源文件(.cpp),mainwindow.cpp是主窗口类的实现文件,main.cpp是主函数文件,也是程序的入口;

  • Forms分组,该节点下是项目内的所有界面文件(.ui),是用XML语言描述的。

在下拉栏里,有如下的几个分组:

其中 Class View 可以显示项目内所有的类结构,便于快速切换和浏览;

双击 mainwindow.ui 会出现窗体设计界面,实际上是继承的 Qt Designer。

编译、调试和执行

[Projects] - [Build&Run] 选择哪一个编译器用于编译项目,选择[Shadow build] 会在编译后在项目同级目录下建立一个编译后的目录,如果不选择此项,会在目录下建立 [Debug] 和 [Release] 子目录。