Qt简介

跨平台C++图形用户界面应用程序框架,为应用程序开发者提供建立艺术级图形界面所需的所有功能。且完全面向对象,容易扩展,允许真正的组件编程。

         下载地址:Index of /archive/qt

         安装教程:(6条消息) QT5.11下载与安装教程_灬杨三岁灬的博客_qt安装教程

Qt的优点

  1. 跨平台,几乎支持所有的平台
  2. 接口简单,容易上手,学习QT框架对学习其他框架有参考意义。
  3. 一定程度上简化了内存回收机制
  4. 开发效率高,能够快速的构建应用程序。
  5. 有很好的社区氛围,市场份额在缓慢上升。
  6. 可以进行嵌入式开发。

         成功案例:

  1. Linux桌面环境KDE
  2. WPS Office 办公软件
  3. Skype 网络电话
  4. Google Earth 谷歌地图
  5. VLC多媒体播放器
  6. VirtualBox虚拟机软件

Qt基本属性

.pro文件

          .pro就是工程文件(project),它是qmake自动生成的用于生产makefile的配置文件。在使用Qt向导生成的应用程序.pro文件格式如下:

QT IDE架构设计 qt软件架构_应用程序

         .pro文件的写法如下:

注释

         从“#”开始,到这一行结束。

模板类型TEMPLATE

TEMPLATE

  • app :建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。
  • lib : 建立一个库的makefile。
  • vcapp :建立一个应用程序的VisualStudio项目文件。
  • vclib :建立一个库的VisualStudio项目文件。
  • subdirs :这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。

应用程序名TARGET


         指定生成的应用程序名;例如:TARGET = chenyaoyao,即生成的.exe程序名称如下所示:

QT IDE架构设计 qt软件架构_c++_02

头文件HEADERS

HEADERS

QT IDE架构设计 qt软件架构_Qt_03

FORMS

         指的是工程中包含的ui设计文件,FORMS += thefirsthomework.ui;如下所示:

QT IDE架构设计 qt软件架构_qt_04

 源文件

如下所示:

QT IDE架构设计 qt软件架构_QT IDE架构设计_05

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

这条语句的含义是,如果QT_MAJOR_VERSION大于4(大于Qt4版本,即当前使用Qt5版本及更高版本),需要增加widgets模块。如果项目仅需支持Qt5,也可以直接添加“QT += widgets”一句。不过为了保持代码兼容,最好还是按照QtCreator生成的语句编写。


QT IDE架构设计 qt软件架构_Qt_06

 配置信息CONFIG

CONFIG用来告诉qmake关于应用程序的配置信息:

      CONFIG += c++11   //使用c++11的特性

      这里使用“+=”,是因为添加我们自己的配置选项到任何一个已经存在中。这样做比使用“=”那样替换已经指定的所有选项更安全。

main()函数


#include "thefirsthomework.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    TheFirstHomework w;
    w.show();
    return a.exec();
}

         解释:


  1. Qt系统提供的标准类名声明头文件没有.h后缀;
  2. Qt一个类对应一个头文件,类名就是头文件名;
  3. QApplication应用程序类;
  • 管理图形用户界面应用程序的控制流和主要设置。
  • 是Qt的整个后台管理的命脉,它包含主事件循环,在其中来自窗口系统和其它资源的所有事件处理和调度。它也处理应用程序的初始化和结束,并且提供对话管理
  • 对于任何一个使用Qt的图形用户界面应用程序,都正好存在一个QApplication 对象,而不论这个应用程序在同一时间内是不是有0、1、2或更多个窗口。
  1. a.exec() :程序进入消息循环,等待对用户输入进行响应。这里main()把控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时候exec()的值就会返回。在exec()中,Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件。

坐标系

         原点位于左上角、y正方向向下、x正方向向右 。嵌套窗口(图中open或close窗口)坐标相对于父类窗口(第一次作业窗口)建立 ,如下所示:

QWidget*openleft=new QWidget;//父类窗口
    QPushButton*Left=new QPushButton(this);//子类窗口,并设置父级窗口为this
    QPushButton*Right=new QPushButton(this);//子类窗口,并设置父级窗口为this
    resize(500,500);//设置父类窗口大小
    setWindowTitle("第一次作业");//设置窗口名称
    openleft->setWindowTitle("temporary window");//设置新窗口名称
    Left->move(100,200);//移动窗口到x=100,y=200处
    Right->move(300,200);//移动窗口到x=300,y=200处
    Left->setText("open");//设置按钮内显示文本
    Right->setText("close");//设置按钮内显示文本

QT IDE架构设计 qt软件架构_应用程序_07

QT IDE架构设计 qt软件架构_应用程序_08

 

 类关系

         三个基类:QMainWindow、QWidget、QDialog,其中 QMainWindow、QDialog继承自QWidget