一、Qt简介

1、什么是Qt

QT是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的,很容易扩展。包括一套跨平台的类库、一套整合的开发工具和一个跨平台的集成开发环境(IDE)。

2、Qt支持的平台

Windows – XP、Vista、Win7、Win8、Win2008、Win10

Uinux/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX、FreeBSD、BSD/OS、和其他很多X11平台

Macintosh – Mac OS X

Embedded – 有帧缓冲支持的嵌入式Linux平台,Windows CE

3、Qt的安装

Linux离线安装:

sudo ./qt-opensource-linux-x86-5.5.1.run

Sudo cp /opt/5.5.1/gcc/bin/qmake /usr/bin

Windows下离线安装:直接双击安装软件即可

二、创建Qt项目

1、使用向导创建:

打开Qt Creator 界面选择 New Project或者选择菜单栏 【文件】-【新建文件或项目】菜单项弹出New Project对话框,选择Qt Widgets Application,

forum.jpg


选择【Choose】按钮,弹出如下对话框

forum.jpg


设置项目名称和路径,按照向导进行下一步

forum.jpg


选择编译套件

forum.jpg


向导会默认添加一个继承自MainWindow的类,可以在此修改类的名字和基类(我们目前一般选QWidget作为基类)。继续下一步

即可创建出一个QT桌面程序。

2、手动创建

(1)添加一个空项目

forum.jpg


选择【choose】进行下一步。设置项目名称和路径 —> 选择编译套件 --> 修改类信息 --> 完成(步骤同上),生成一个空项目。

(2)在空项目中添加文件:在项目名称上单击鼠标右键弹出右键菜单,选择【添加新文件】

forum.jpg


弹出新建文件对话框

forum.jpg


在此对话框中选择要添加的类或者文件,根据向导完成文件的添加。

三、第一个简单的Qt应用程序

#include <QApplication>

#include <QWidget>//引用窗口类声明的头文件

int main(int argc, char *argv[])//入口函数

{

QApplication a(argc, argv);//GUI事件处理对象

QWidget w;//定义窗口类对象

w.show();//显示窗口

return a.exec();//事件循环

}

说明:

Qt头文件没有.h后缀,Qt中一个类对应一个头文件,类名就是头文件名。

QApplication应用程序类

管理图形用户界面应用程序的控制流和主要设置。

是Qt的整个后台管理的命脉它包含主事件循环,在其中来自窗口系统和其它资源的所有事件处理和调度。它也处理应用程序的初始化和结束,并且提供对话管理。

对于任何一个使用Qt的图形用户界面应用程序,都正好存在一个QApplication 对象,而不论这个应用程序在同一时间内是不是有0、1、2或更多个窗口。

QWidget是QT的窗口基类,所有的窗口都由其派生而来。

a.exec()

程序进入消息循环,等待对用户输入进行响应。这里main()把控制权转交给Qt,Qt完成事件处理工作,当应用程序退出的时候exec()的值就会返回。

四、信号和槽机制

当我们改变一个部件时,往往想要让另一个部件知道,如按下一个按钮,整个窗口退出。可以这样来描述该机制:当点击按钮时按钮会自动产生一个clicked()信号 ,我们将这个信号连接到窗口的quit()槽函数上,这样在点击按钮时就会自动运行窗口的quit()槽函数。

信号和槽的连接:

为了体验一下信号槽的使用,我们以一段简单的代码说明:

#include <QApplication>

#include <QPushButton>

int main(int argc, char *argv[])

{

QApplication app(argc, argv);


QPushButton button("Quit");

QObject::connect(&button, &QPushButton::clicked,

&app, &QApplication::quit);

button.show();

return app.exec();

}

我们按照前面介绍的在 QTCreator 中创建工程的方法创建好工程,然后将main()函数修改为上面的代码。点击运行,我们会看到一个按钮,上面有“Quit”字样。点击按钮,程序退出。

connect()函数最连接信号与槽常用的一般形式:

connect(sender, signal, receiver, slot);

参数:

sender:发出信号的对象

signal:发送对象发出的信号

receiver:接收信号的对象

slot:接收对象在接收到信号之后所需要调用的函数