Qt框架概述
- 一、什么是Qt
- 二、了解QtCreator
- 三、创建Qt项目
- *Qt项目框架及文件介绍
 
- 四、设置窗口属性
- 五、按钮
- 创建按钮方式一
- 按钮属性设置
 
- 创建按钮方式二
 
- 六、对象模型
一、什么是Qt
概念:
 Qt是一个基于C++的 跨平台的图形用户界面应用程序框架。
 常见GUI
- Qt :支持多平台开发
- MFC:仅在Windows开发
使用Qt开发的案例:
- Linux桌面环境KDE
- Google Earth 谷歌地图
- WPS Office
- 极品飞车
二、了解QtCreator
Qt和QtCreator的区别
 Qt:开发工具包
 QtCreator:集成的编译器,即Qt的桌面环境
QtCreator界面
 
- 欢迎选项 
  - 工程:创建工程+打开工程
- 示例:demo程序
- 教程
 
- 编辑选项 
  - 编辑项目文件
 
- 设计选项 
  - 设计ui
 
- debug选项
 调试
- 项目设置选项
- 帮助选项 
  - 查询手册
 
三、创建Qt项目
欢迎–>project–>new project
 菜单栏–>文件–>新建文件或项目
创建类的基类
 
*Qt项目框架及文件介绍

.pro文件:工程文件,qmake自动生成的用于生产makefile的配置文件
QT       += core gui//包含的模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets//Qt版本大于4包含此模块,兼容旧版本
TARGET = test//应用程序名,生成的 exe程序
TEMPLATE = app//模板类型
 
DEFINES += QT_DEPRECATED_WARNINGS//定义编译选项,表示如果有些功能被Qt标记为过时,编译器就会发出警告  
SOURCES += \
        main.cpp \ //源文件
        widget.cpp
HEADERS += \
        widget.h //头文件
main.cpp
#include "widget.h"  //Qt中一个类对应一个头文件,类名即为头文件名
#include <QApplication>//Qt系统提供的标准类名生成头文件
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);//系统提供的应用程序类,处理应用程序的初始化和结束,事件调度处理
    Widget w;//实例化对象,调用构造函数
    w.show();
    return a.exec();//主事件循环,在exec函数中,Qt会接受并处理用户和系统的事件,并将它们传递给适当的窗口控件
}
widget.cpp
#include "widget.h"
//构造函数
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
}
//析构函数
Widget::~Widget()
{
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
//继承
class Widget : public QWidget
{
    Q_OBJECT
public:
    Widget(QWidget *parent = 0);//构造函数声明
    ~Widget();//析构函数声明
};
#endif // WIDGET_H
四、设置窗口属性
在widget.cpp源文件中的Widget类的构造函数里设置窗口属性
 
- 关于Qt中文乱码的解决
  

 注:改完编码设置新建工程设置才会生效
五、按钮
创建按钮方式一
1.包含头文件(.cpp)和组件(.pro)
 
2.调用类的构造函数创建按钮
//创建按钮
QPushButton*button=new QPushButton;
3.显示按钮
 调用show函数或者设置按钮的父对象为窗口
//button->show();//另开窗口显示
//设置按钮的父对象为窗口,按钮会在窗口中显示
button->setParent(this);
按钮属性设置
//设置按钮内容
button->setText("这是一个按钮");
//设置按钮的显示位置
button->move(300,100);
//设置按钮大小
button->setFixedSize(80,30);
创建按钮方式二
创建按钮的同时设置父对象
/************设置按钮方式二*************/
QPushButton* button2=new QPushButton("第二个按钮",this);
区别:
- 方式一的窗口是默认大小,按钮显示在左上角
- 方式二窗口根据按钮大小来创建,使用方式二一般需要重置窗口大小
六、对象模型
概念:Qt对象间的父子关系,简化了内存回收
- 在创建一个QObject对象时,QObject的构造函数会接收一个QObject指针作为参数,则会个参数就是父对象指针,我们创建的QObject对象会自动添加到其父对象的children()列表。
- QWidget是能在屏幕上显示的一切组件的父类,QWidget继承自QObject
- 关闭一个窗口的时候,调用析 构函数,如果窗口还有子类,会先调用子类 对象的析构函数







![[论文阅读RGBD-SOD][2022_TCSVT_MoADNet][轻量化]](https://img-blog.csdnimg.cn/4eac026aca554bcda9192c10c0d36968.png)











