QT 学习笔记(一)

文章目录

  • 一、QT 安装
  • 二、为什么学 QT
  • 三、QT 应用程序框架
    • 1. QT Creater
    • 2. 新建一个 QT 应用程序
    • 3. QT 代码框架详解
      • 3.1 main.cpp
      • 3.2 myWidget.h
      • 3.3 day1.pro
    • 4. QT 基本模块
  • 四、第一个 QT 程序
    • 1. 准备工作
      • 1.1 项目创建
      • 1.2 主函数框架测试
    • 2. 设置窗口标题
      • 2.1 main.cpp
      • 2.2 运行结果
    • 3. 添加按钮
      • 3.1 main.cpp
      • 3.2 运行结果

由于每次代码都是在原有程序上修改,因此除了新建项目,不然一般会在学完后统一展示代码。

一、QT 安装

  • 本人直接用同学的安装包进行安装的,版本为 QT5.12 。大家可以在 CSDN 或者 B站 上看别人的安装教程,都做的很详细。

二、为什么学 QT

  • 学习GUI编程,市场上任何一款产品几乎都带图形界面,市场上很火的 Android 、IOS 编程无非也是 GUI app 编程,GUI 编程都是差不多,学习QT 后再学习 Android、IOS,会比较轻松。由于 QT 跨平台特性,通过 QT 写的程序可以在 Android、IOS平台上运行。
  • 锻炼编程能力,GUI 编程比后台编程更能锻炼人,因为除了核心数据处理外,还需要协调界面,同时懂得前端和后台编程,才能更好地写好程序。
  • 为了更好地使用 C++ ,学习 QT 的框架(QT 是 C++ 实现的应用程序框架),很多游戏、后台服务器框架都是使用 C++ 实现。
  • QT 的良好封装机制使得 QT 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。QT 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件之间的协同工作变得十分简单。
  • QT 包括多达 250 个以上的 C++ 类,还提供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理功能。

三、QT 应用程序框架

1. QT Creater

QT 学习笔记(一)_第1张图片QT 学习笔记(一)_第2张图片

2. 新建一个 QT 应用程序

QT 学习笔记(一)_第3张图片
QT 学习笔记(一)_第4张图片
QT 学习笔记(一)_第5张图片

  • 我们一般选用 QWidget

QT 学习笔记(一)_第6张图片
QT 学习笔记(一)_第7张图片
QT 学习笔记(一)_第8张图片

3. QT 代码框架详解

  • 具体解释均已注释在代码当中。

3.1 main.cpp

#include "mywidget.h"

// QApplication 是应用程序类
// QT 头文件没有 .h
// 头文件和类名一样
#include 

int main(int argc, char *argv[])
{
   // 固定框架,有且只有一个应用程序类的对象
   QApplication a(argc, argv);
   
   // myWidget继承于QWidget,QWidget是一个窗口基类
   // 所以myWidget也是窗口类
   // w就是一个窗口
   myWidget w;
   
   // 窗口创建默认是隐藏的,需要人为显示
   w.show();
    
   // a.exec()让程序一直执行,等待用户操作
   return a.exec();
   }

3.2 myWidget.h

//快捷键 f4 可以跳转对应的 .c 文件。
#ifndef MYWIDGET_H
#define MYWIDGET_H

#include 

class myWidget : public QWidget
{
    Q_OBJECT  // 信号与槽的时候需要

public:
    myWidget(QWidget *parent = 0);
    ~myWidget();
};

#endif // MYWIDGET_H

QT 学习笔记(一)_第9张图片

3.3 day1.pro

# 一个程序对应一个 .pro 文件,在 .pro 文件当中,注释是 #

# 模块
QT       += core gui

# 高于4版本,添加 QT += widgets,为了兼容 QT4
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

# 应用程序的名字
TARGET = day1

# 指定 makefile 的类型,app
TEMPLATE = app

# 源文件 .cpp 文件
SOURCES += \
        main.cpp \
        mywidget.cpp

# 头文件 .h 文件
HEADERS += \
        mywidget.h

4. QT 基本模块

QT 学习笔记(一)_第10张图片

四、第一个 QT 程序

1. 准备工作

1.1 项目创建

  • 这里需要注意:

QT 学习笔记(一)_第11张图片

  • 后续步骤与前文相同。

QT 学习笔记(一)_第12张图片QT 学习笔记(一)_第13张图片

  • 后续添加 C++ 源文件和头文件步骤与 VS2022 相同,在此不过多叙述,需要注意源文件是 .cpp,头文件是 .h 。

1.2 主函数框架测试

QT 学习笔记(一)_第14张图片

2. 设置窗口标题

2.1 main.cpp

#include 
#include  //窗口空间基类
int main(int argc,char **argv)
{
    QApplication app(argc,argv);
    
    QWidget w;
    w.setWindowTitle("主要看气质");  //设置标题
    w.show();

    return app.exec();
}

2.2 运行结果

QT 学习笔记(一)_第15张图片

3. 添加按钮

3.1 main.cpp

  • 知识点和注意事项以注释的方式在代码当中。
#include 
#include  //窗口空间基类
#include   //按钮
int main(int argc,char **argv)
{
    QApplication app(argc,argv);

    QWidget w;
    w.setWindowTitle("主要看气质");  //设置标题


    // 如果不指定父对象,对象和对象(窗口和窗口),没有关系,是独立的。
    // a指定b为它的父对象,即a放在b上面。
    // 指定父对象:1. setParent; 2. 通过构造函数传参
    // 指定父对象,只需要父对象显示,上面的子对象自动显示

    QPushButton b;
    b.setText("^_^");  //给按钮设置内容
    b.setParent(&w);  //指定父对象
    b.move(100,100);  //移动坐标,以窗口左上角为起点,以像素点为单位

    QPushButton b1(&w);
    b1.setText("abc");  //给按钮设置内容

    w.show();

    return app.exec();
}

3.2 运行结果

QT 学习笔记(一)_第16张图片

你可能感兴趣的:(QT,qt,学习,开发语言)