1、Qt 基础

该栏目会系统的介绍Qt的知识体系,共分为基础部分、综合实例、结合OpenCV等模块,有兴趣的小伙伴可以关注下,如有疑问可以多多评论,每周定期更新



Qt 简介

1、概述

  • :一个跨平台的C++图形用户界面应用程序框架

2、优势

  • 优势
    • 跨平台
    • 完全面向对象
    • 易扩展
    • 允许组件编程

3、基本模块

  • 基本模块
    Qt基本模块

Qt 环境

1、安装 Qt

  • 下载https://download.qt.io/archive/qt
    Qt下载页面

  • 安装

    • 步骤1
      安装步骤1
    • 步骤2:填写用户信息
      安装步骤2
    • 步骤3
      安装步骤3
    • 步骤4
      安装步骤4
    • 步骤5:选择安装目录、勾选安装Qt Creator
      安装步骤5
    • 步骤6:勾选开发必要组件
      安装步骤6
    • 步骤7
      安装步骤7
    • 步骤8:安装
      安装步骤8
    • 步骤9
      安装步骤9
  • 配置环境变量
    环境变量配置

2、Qt Creator 简介

  • 概述:是Qt的集成开发环境,集成了Qt Designer、Qt Assistant、Help等工具
  • 常用快捷键
作用快捷键
注释ctrl + /
编译ctrl + b
运行ctrl + r
格式化ctrl + i
移动整行ctrl + shift + 上下键
同名.h和.cpp切换F4
查找ctrl + f
帮助文档F1
  • 界面介绍
    • 欢迎界面:包括工程、示例和教程相关界面
      欢迎界面
    • 编辑界面:用于编写代码
      编辑界面
    • 设计界面:用于设计UI界面
      设计界面
    • Debug界面:调试程序,用于跟踪观察程序的运行情况
      Debug界面
    • 项目参数配置界面:项目开发环境相关配置
      开发参数配置界面
    • 帮助界面:搜索相关类的介绍
      帮助界面

Qt 简单实例

  • 创建项目:创建模板后,剩下的项目配置按默认的设置
    • 选择模板
      选择模板
    • 选择项目名称和位置
      构建项目1
    • 构建系统:用来从源代码生成用户可以使用的目标(targets)的自动化工具
      构建项目2
    • 配置主界面
      构造项目3
    • 配置语言
      构建项目4
    • 选择编译套件
      构建项目5
    • 配置预览
      构建项目6
  • 界面设计
    • UI界面:打开mainwindow.ui
      面积计算器界面
    • 对象监视器
      对象监视器
    • 各控件属性
ClasstextobjectName
QLabel半径radiusLabel
QLineEditradiusLineEdit
QLabel面积areaLabel
QLabel面积值areaValue
QPushButton计算countBtn
  • 配置文件:AreaProject.pro
# 包含Qt主要模块
QT       += core gui
# 大于版本4以上,包含widgets模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
# 启用C+11
CONFIG += c++11 
# 函数过时警告
DEFINES += QT_DEPRECATED_WARNINGS
# 生成exe程序的名称
TARGET = area_demo  
# 应用程序模板(Application)
TEMPLATE = app 

# 配置文件位置
SOURCES += \ # 源文件位置
    main.cpp \
    mainwindow.cpp

HEADERS += \ # 头文件位置
    mainwindow.h

FORMS += \ # UI文件位置
    mainwindow.ui

# 默认环境规则
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
  • 主文件:main.cpp
#include "mainwindow.h"

#include <QApplication>

// main方法,程序入口,argc命令行变量数量,argv命令行变量数组
int main(int argc, char *argv[])
{
    // 应用程序,只能有一个
    QApplication a(argc, argv);
    // 窗口对象
    MainWindow w;
    // 显示窗口
    w.show();
    // 阻塞函数,程序进入事件循环
    return a.exec();
}

  • 主窗口头文件:mainwindow.h
#ifndef MAINWINDOW_H // 防止头文件重复包含
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT // 宏定义,允许类中使用信号和槽的机制

public:
    MainWindow(QWidget *parent = nullptr); // 构造函数
    ~MainWindow(); // 折构函数

// 定义槽函数
private slots:
    // 当countBtn按钮被点击时
    void on_countBtn_clicked();
    // 当radiusLineEdit输入框文本改变时
    void on_radiusLineEdit_textChanged(const QString &arg1);

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
  • 主窗口源文件:mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"

// 定义全局常量PI
const static double PI = 3.1416;

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

/**
 * 当countBtn按钮被点击时
 */
void MainWindow::on_countBtn_clicked()
{
    bool ok;
    QString temp;
    QString radiusStr = ui->radiusLineEdit->text(); // 获取输入框内容
    int radius = radiusStr.toInt(&ok); // 将输入框内容转换成整数
    double area = radius * radius * PI; // 计算面积
    ui->areaValue->setText(temp.setNum(area)); // 将计算结果显示在areaValue组件中
}

/**
 * 当radiusLineEdit输入框文本改变时
 */
void MainWindow::on_radiusLineEdit_textChanged(const QString &arg1)
{
    bool ok;
    QString temp;
    QString radiusStr = ui->radiusLineEdit->text(); // 获取输入框内容
    int radius = radiusStr.toInt(&ok); // 将输入框内容转换成整数
    double area = radius * radius * PI; // 计算面积
    ui->areaValue->setText(temp.setNum(area)); // 将计算结果显示在areaValue组件中
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值