QT 学习笔记(一)


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

一、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

在这里插入图片描述在这里插入图片描述

2. 新建一个 QT 应用程序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 我们一般选用 QWidget

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. QT 代码框架详解

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

3.1 main.cpp

#include "mywidget.h"

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

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 <QWidget>

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

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

#endif // MYWIDGET_H

在这里插入图片描述

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 程序

1. 准备工作

1.1 项目创建

  • 这里需要注意:

在这里插入图片描述

  • 后续步骤与前文相同。

在这里插入图片描述在这里插入图片描述

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

1.2 主函数框架测试

在这里插入图片描述

2. 设置窗口标题

2.1 main.cpp

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

    return app.exec();
}

2.2 运行结果

在这里插入图片描述

3. 添加按钮

3.1 main.cpp

  • 知识点和注意事项以注释的方式在代码当中。
#include <QApplication>
#include <QWidget> //窗口空间基类
#include <QPushButton>  //按钮
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 运行结果

在这里插入图片描述

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚心求知的熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值