(1)QT基础铺垫

目录

1.Qt特性

2. 新建项目

3. 工作目录与构建目录

4. 工作目录

4.1 .pro 项目配置文件

4.2 dialog.h

4.3 dialog.cpp

4.4 main.cpp

5. 帮助文档

6. 调试信息


1.Qt特性

Qt经常被当作是一个基于c++语言的gui开发框架,但是这并不是qt的全部,除了开发界面外,Qt还包含了很多其他功能:多线程 数据库 图像处理 网络通信 文件io 音视频处理等

Qt被更广泛应用于纯软件开发和嵌入式开发,以下为案例:

涉及游戏、医疗、办公处理、银行ATM机交互自动售货机 、液晶汽车仪表等等

Qt的最大特点优势在于其跨平台特性:一次编程,到处编译     

(一份图像界面代码都能在os win dns下跑)

除此之外,Qt还有以下优势

1)基于面向对象开发

2)丰富的API(应用程序接口)

3)大量的开发文档

4)易用的开发环境

5)开源(内卷大,可取代性大 ,os系统闭源)

2. 新建项目

1. 启动Qt Creator程序,点击

2. 在弹出的窗口中,按照下图所示进行操作。

3. 在弹出的窗口中设定项目名称和工作目录。

4. 直接下一步。

5. 在弹出的窗口中,按照下图所示进行操作。

6. 在项目管理界面,直接点击完成。可以看到相关文件的生成。

7. 点击绿色三角

,可以运行项目程序,运行后弹出一个空白的对话框窗口。

3. 工作目录与构建目录

第四节创建项目时设置的目录是工作目录,工作目录用于存放项目开发的源代码文件。在Qt Creator中点击

,可以看到有一个构建目录,构建目录用于存放项目编译生成的产物,例如exe可执行文件等。

如果有同学的Qt Creator无法正常运行Qt项目,又找不到原因,可以尝试把Shadow build(影子构建)选项取消,取消之后构建目录与工作目录合二为一,可以提升编译的稳定性,但是不建议这样做,因为所有的文件混在一起,项目分类不清晰。

4. 工作目录

工作目录在明面上包含下面的几类文件。

实际上工作目录中还有一个.user文件,交作业时请删除。

为了更方便的入门,重新建立一个项目,更改第5步为:

使用这种方式新建的项目具有以下区别:

  • dialog.h与dialog.cpp结构更加简单
  • 取消了.ui界面文件

4.1 .pro 项目配置文件

#-------------------------------------------------
#
# Project created by QtCreator 2023-05-04T09:36:04
#
#-------------------------------------------------

# 当前项目使用的Qt的模块
QT       += core gui

# 当Qt的主版本号大于4时,引入widgets模块代替gui模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

# 生成的可执行文件名称
TARGET = HelloWorld23021
# 构建模式(勿动)
TEMPLATE = app

# 项目中包含的源文件
SOURCES += main.cpp\
        dialog.cpp

# 项目中包含的头文件
HEADERS  += dialog.h

# 项目中包含的界面文件
FORMS    += dialog.ui

4.2 dialog.h

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>

// 自定义的Dialog类继承了自带的QDialog类(所有对话框窗口的基类)
class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = 0); // 构造函数
    ~Dialog(); // 虚构函数
};

#endif // DIALOG_H

4.3 dialog.cpp

#include "dialog.h"

// 构造函数
Dialog::Dialog(QWidget *parent)
    : QDialog(parent) // 透传
{
}

Dialog::~Dialog() // 析构函数
{

}

4.4 main.cpp

#include "dialog.h"
#include <QApplication>

// 主函数:程序的入口
int main(int argc, char *argv[])
{
    // 创建了一个管理类对象:用于管理程序运行
    QApplication a(argc, argv);

    Dialog w; // 创建了一个对话框窗口
    w.show(); // 展示窗口对象

    return a.exec(); // 进入主事件循环
}

5. 帮助文档

学好Qt必须要学会使用帮助文档,有以下几种启动方式:

  • 在Windows中直接找到Assistant程序

这种方式可以启动一个独立帮助文档的窗口,适合多屏用户使用。一个屏幕写代码,一个屏幕查文档。

  • 在Qt Creator中,点击

这种方式可以调用一个内置的帮助文档。

  • 在Qt Creator的代码中,光标定位到要查询的内容,双击键盘F1

这种方式可以直接定位到光标处的文档内容,需要注意的是不同品牌的电脑F1键点法不太一样,有些需要同时按Fn键。

6. 调试信息

    在Qt开发中,调试信息只对开发者可见,不对用户可见,即这些信息的显示不在程序页面中,显示在后台。

    使用的类为QDebug的类

    为了能正常输出中文,需要先更改Qt Creator的编码为UTF-8。

设置完成后,建议重启Qt Creator并新建一个项目测试中文输出。

 dialog.h

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
// 引入头文件
#include <QDebug>

class Dialog : public QDialog
{
    Q_OBJECT

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

#endif // DIALOG_H

dialog.cpp

#include "dialog.h"

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    // Qt中函数的命名风格为 小驼峰命名法
    // 第一个单词全小写,后面的每个单词首字母大写
    // 与cout的区别:
    // 1. 连续输出的内容自动使用空格间隔
    // 2. 每句话结束后自动换行
    qDebug() << "构造函数" << "调用了";
}

Dialog::~Dialog()
{
    qDebug() << "析构函数调用了";
}

当运行项目时出现

表示之前运行的程序还没有关闭,关闭正在运行的程序,重新运行即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/16795.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaWeb( 二 ) URL

1.4.URL统一资源定位符 URL代表Uniform Resource Locator 统一资源定位符&#xff0c;也叫 URL地址 。是用于标识和定位Web上资源的地址&#xff0c;通常用于在Web浏览器中访问网站和文件。 URL由若干部分组成&#xff0c;scheme:// host : port / path 例如&#xff1a; htt…

WxGL应用实例:绘制点云

WxGL附带了几个工具函数&#xff0c;其中read_pcfile用来解析.ply和.pcd格式的点云文件&#xff0c;该函数返回一个PointCloudData类实例&#xff0c;包含以下属性&#xff1a; PointCloudData.ok - 数据是否可用&#xff0c;布尔型PointCloudData.info - 数据可用性说明&…

《通过十几轮数据进行模型训练,实现精确的无创血糖测量的演绎学习》阅读笔记

目录 0 演绎学习 1 论文摘要 2 论文十问 3 论文亮点与不足之处 4 与其他研究的比较 5 实际应用与影响 6 个人思考与启示 参考文献 0 演绎学习 在本文中&#xff0c;DL指的是Deduction Learning&#xff0c;即演绎学习方法。该方法是一种机器学习方法&#xff0c;通过使…

简单毛概刷题网页制作 3.0(拖欠近一年版)

原因是大概一年之前学校的毛概期末刷题网站突然崩了&#xff0c;但是一直没有修复。当时眼看着复习时间逐渐被压缩&#xff0c;自己啥也做不了&#xff0c;遂自学前端完成毛概刷题网页一枚。 最早的毛概刷题网站仅仅是 1.0 版本&#xff08;传送门&#xff09;&#xff0c;功能…

STM32F4_USMART调试组件

目录 1. USMART是什么&#xff1f; 2. USMART的特点 3. USMART实现流程 4. USMART组件 5. 在usmart_config.c中添加想要被USMART调用的函数 6. 实验程序 6.1 main.c 6.2 usmart.c 6.3 usmart.h 7. USMART调试的优越性说明 1. USMART是什么&#xff1f; USMART 是 AL…

org.apache.poi 设置 Excel 单元格颜色 RGB

一、背景说明 在使用 org.apache.poi 导出 Excel 时&#xff0c;需要设置部分单元格的颜色。 可以使用方法&#xff1a;org.apache.poi.ss.usermodel.CellStyle.setFillForegroundColor() 和 org.apache.poi.ss.usermodel.CellStyle.setFillPattern() 来设置单元格的颜色和填…

低频量化之 可转债 配债数据及策略 - 全网独家

目录 历史文章可转债配债数据 待发转债&#xff08;进展统计&#xff09;待发转债&#xff08;行业统计&#xff09;待发转债&#xff08;5证监会通过&#xff0c;PE排序&#xff09;待发转债&#xff08;5证监会通过&#xff0c;安全垫排序&#xff09;待发转债&#xff08;5证…

【算法】一文彻底搞懂ZAB算法

文章目录 什么是ZAB 算法&#xff1f;深入ZAB算法1. 消息广播两阶段提交ZAB消息广播过程 2. 崩溃恢复选举参数选举流程 ZAB算法需要解决的两大问题1. 已经被处理的消息不能丢2. 被丢弃的消息不能再次出现 最近需要设计一个分布式系统&#xff0c;需要一个中间件来存储共享的信息…

Java 怎样实现代理模式,有什么优缺点

一、介绍 代理模式是一种常见的设计模式&#xff0c;它可以为其他对象提供一种代理以控制对这个对象的访问。代理对象具有与被代理对象相同的接口&#xff0c;客户端无需知道代理对象和被代理对象的区别。代理模式可以应用于各种不同的场景&#xff0c;例如远程代理、虚拟代理…

SpringBoot整合Mybatis-plus实现多级评论

在本文中&#xff0c;我们将介绍如何使用SpringBoot整合Mybatis-plus实现多级评论功能。同时&#xff0c;本文还将提供数据库的设计和详细的后端代码&#xff0c;前端界面使用Vue2。 数据库设计 本文的多级评论功能将采用MySQL数据库实现&#xff0c;下面是数据库的设计&…

vcruntime140.dll无法继续执行代码?vcruntime140.dll如何修复?只需要3步即可

vcruntime140.dll是用于Microsoft Visual C Redistributable&#xff08;可再发行组件&#xff09;的一部分&#xff0c;它是一个动态链接库文件&#xff0c;包含了该软件包提供的运行库。在许多应用程序和游戏中&#xff0c;vcruntime140.dll文件经常被使用。如果该文件缺失或…

spark 数据的加载和保存(Parquet、JSON、CSV、MySql)

spark数据的加载和保存 SparkSQL 默认读取和保存的文件格式为 parquet 1.加载数据 spark.read.load 是加载数据的通用方法 scala> spark.read. csv format jdbc json load option options orc parquet schema table text textFile 如果读取不同格式的数据&#xff0c;可以…

后端要一次性返回我10万条数据

问题描述 面试官&#xff1a;后端一次性返回10万条数据给你&#xff0c;你如何处理&#xff1f;我&#xff1a;歪嘴一笑&#xff0c;what the f**k! 问题考察点 看似无厘头的问题&#xff0c;实际上考查候选人知识的广度和深度&#xff0c;虽然在工作中这种情况很少遇到... …

情景剧本杀闯关系统

情景剧本杀闯关软件的开发需求通常包括以下几个方面&#xff1a; 剧本设计&#xff1a;开发者需要根据用户需求和市场调研&#xff0c;设计不同主题和难度等级的剧本内容&#xff0c;以及游戏过程中的任务、角色和道具等。 游戏引擎开发&#xff1a;为了实现游戏过程中…

如何在 DigitalOcean 中部署 ONLYOFFICE 文档

现在您可使用通过 DigitalOcean 市场提供的一键式应用在 DigitalOcean 云架构中轻松部署 Docker 版本的 ONLYOFFICE 文档。 一键式应用是一个包含所有必要预配置组件的镜像&#xff0c;可用于便捷地在运行有 Ubuntu OS 的 DigitalOcean 服务器上部署 ONLYOFFICE&#xff1a; D…

Azure DevOps Server 2022.0.1升级手册

Contents 1. 概述2. 操作方法 2.1 安装操作系统2.2 安装数据库2.4 还原数据2.3 安装和配置Azure DevOps Server 1. 概述 Azure DevOps Server 是微软公司经过20多年的持续开发&#xff0c;逐渐将需求管理、敏捷实践、源代码管理、持续集成等功能集成一体&#xff0c;实现应用软…

B-Tree (多路查找树)分析-20230503

B-Tree (多路查找树)学习-20230503 前言 B-树是一类多路查询树&#xff0c;它主要用于文件系统和某些数据库的索引&#xff0c;如果采用二叉平衡树访问文件里面的数据&#xff0c;最坏情况下&#xff0c;磁头可能需要进行O(h)次对磁盘的读写&#xff0c;其中h为树的高度&…

微服务不是本地部署的最佳选择,不妨试试模块化单体

微服务仅适用于成熟产品 关于从头开始使用微服务&#xff0c;马丁・福勒&#xff08;Martin Fowler&#xff09;总结道&#xff1a; 1. 几乎所有成功的微服务都是从一个过于庞大而不得不拆分的单体应用开始的。 2. 几乎所有从头开始以微服务构建的系统&#xff0c;最后都会因…

Java 反射机制

目录 一、反射机制概述 二、理解并获取Class实例 三、反射的用法 1. 通过反射创建运行时类的对象 2. 通过反射获取运行时类的属性结构 3. 通过反射获取运行时类的方法结构 4. 通过反射获取运行时类的构造器结构 5. 通过反射获取运行时类的父类 6. 通过反射获取运行时类…

DDD系列:三、Repository模式

为什么需要Repository&#xff1f; ​ Anemic Domain Model&#xff08;贫血领域模型&#xff09;特征&#xff1a; 有大量的XxxDO对象&#xff1a;这里DO虽然有时候代表了Domain Object&#xff0c;但实际上仅仅是数据库表结构的映射&#xff0c;里面没有包含&#xff08;或…
最新文章