QT基础铺垫

news2024/9/25 1:21:15

1.qt定位

qt在整个课程体系中起到以下作用

1.c++理论的实践课

2.图形用户界面GUI开发

3.一个独立的就业方向

3.qt特性

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

Qt被更广泛应用于纯软件开发和嵌入式开发

 

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

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

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

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

1)基于面向对象开发

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

3)大量的开发文档

4)易用的开发环境

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

4. 新建项目

1. 启动Qt Creator程序,点击

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

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

4. 直接下一步。

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

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

7. 点击绿色三角

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

5. 工作目录与构建目录

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

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

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

6. 工作目录

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

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

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

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

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

6.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

6.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

6.3 dialog.cpp

#include "dialog.h"

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

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

}

6.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(); // 进入主事件循环
}

7. 帮助文档

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

  • 在Windows中直接找到Assistant程序

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

  • 在Qt Creator中,点击

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

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

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

8. 调试信息

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

    使用的类为QDebug

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++最后一个数组元素后加不加逗号,的问题(C++11 及以上的标准中,最后一个元素后面可以加逗号,也可以不加)

这代码看得我有点疑惑&#xff0c;最后一个元素后咋有个逗号呢&#xff1f;也没报错&#xff1f; 原因&#xff1a; 在 C11 及以上的标准中&#xff0c;最后一个元素后面可以加逗号&#xff0c;也可以不加。因此&#xff0c;上述代码可以写成以下两种形式&#xff1a; std::v…

零基础学SQL(十三、事务)

目录 前置建表 ​编辑 一、什么是事务 二、事务特性ACID 1、原子性(Atomicity) 2、一致性(Consistency) 3、隔离性(Isolation) 4、持久性(Durability) 三、事务控制 1、ROLLBACK 2、COMMIT 使用 set autocommit0;命令修改默认提交方式为FALSE 前置建表 CREATE TABLE…

无距离障碍:远程桌面Ubuntu实现全球办公

目录 前言 视频教程 1. ubuntu安装XRDP 2.局域网测试连接 3. Ubuntu安装cpolar内网穿透 4.cpolar公网地址测试访问 5.固定域名公网地址 [TOC] 转载自远程穿透文章&#xff1a;Windows通过RDP异地远程桌面Ubuntu【内网穿透】 前言 XRDP是一种开源工具&#xff0c;它允许…

Android开发中的前五个代码异味:Jetpack Compose UI和MVVM

Android开发中的前五个代码异味&#xff1a;Jetpack Compose UI和MVVM 代码异味是指软件代码中潜在问题的指标&#xff0c;可能并不一定是错误&#xff0c;但可能会导致问题&#xff0c;如增加维护复杂性、降低性能或降低可读性。我们将探讨Android开发中的前五个代码异味&…

【C++】布隆过滤器

文章目录 布隆过滤器提出布隆过滤器概念布隆过滤器应用场景设计思路:布隆过滤器的插入布隆过滤器的查找布隆过滤器删除BloomFilter.h布隆过滤器优点布隆过滤器缺陷 布隆过滤器提出 我们在使用新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉那些已经…

Leetcode力扣秋招刷题路-0902

从0开始的秋招刷题路&#xff0c;记录下所刷每道题的题解&#xff0c;帮助自己回顾总结 902. 最大为 N 的数字组合 给定一个按 非递减顺序 排列的数字数组 digits 。你可以用任意次数 digits[i] 来写的数字。例如&#xff0c;如果 digits [‘1’,‘3’,‘5’]&#xff0c;我…

一图看懂 requests 模块:用Python编写、供人类使用的HTTP库, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 requests 模块&#xff1a;用Python编写、供人类使用的HTTP库, 资料整理笔记&#xff08;大全&#xff09; 摘要模块图类关系图模块全展开【requests】统计常量str 模块3 w…

小红书违禁词有哪些,小红书违禁词汇总分享

大家都知道小红书平台对于违禁词的管控一向非常严格&#xff0c;笔记中一旦出现就可能被限流&#xff0c;今天为大家整理了一份小红书违禁词汇总&#xff0c;希望能够帮助大家避免被限流。 小红书违禁词汇总大致有以下几个分类&#xff0c;大家平时写笔记的时候最好避开这些词或…

HashMap底层实现原理

HashMap HashMap 最早出现在 JDK 1.2中&#xff0c;底层基于散列算法实现&#xff0c;它是一个key-value结构的容器。 是一个key-value的映射容器&#xff0c;key不重复jdk8中的HashMap基于数组链表红黑树实现不保证键值的顺序可以存入null值非线程安全&#xff0c;多线程环境…

log4j2.xml配置解析

log4j2.xml文件的配置大致如下&#xff1a; Configuration&#xff1a;为根节点&#xff0c;有status和monitorInterval等多个属性 status的值有 “trace”, “debug”, “info”, “warn”, “error” and “fatal”&#xff0c;用于控制log4j2日志框架本身的日志级别&#x…

python+vue+nodejs旅游资源信息网站

1&#xff0e;系统登录&#xff1a;系统登录是用户访问系统的路口&#xff0c;设计了系统登录界面&#xff0c;包括用户名、密码和验证码&#xff0c;然后对登录进来的用户判断身份信息&#xff0c;判断是管理员用户还是普通用户。 2&#xff0e;系统用户管理&#xff1a;不管是…

如何选择正确的数据可视化图表

数据可视化是数据分析的重要组成部分&#xff0c;因为它们能够以图形格式有效地汇总大量数据。有许多可用的图表类型&#xff0c;每种类型都有自己的优势和用例。分析过程中最棘手的部分之一是选择使用这些可视化效果之一的正确方法来表示数据。 在本文中&#xff0c;我们根据需…

基于redis和threadlocal实现登录状态校验和拦截

1.流程图 单机节点下的登录状态校验 分布式节点下的登录状态校验 2.代码实现 实现步骤分为如下几步 实现WebMvcConfigurer接口&#xff0c;添加拦截器定义拦截器&#xff0c;需要配置两个interceptor&#xff0c;第一个用于刷新token&#xff0c;写threadlocal&#xff…

AI绘图实战(八):制作游戏人物原稿三视图 | Stable Diffusion成为设计师生产力工具

S&#xff1a;AI能取代设计师么&#xff1f; I &#xff1a;至少在设计行业&#xff0c;目前AI扮演的主要角色还是超级工具&#xff0c;要顶替&#xff1f;除非甲方对设计效果无所畏惧~~ 预先学习&#xff1a; 安装及其问题解决参考&#xff1a;《Windows安装Stable Diffusion …

【机器学习 - 10】:PCA和梯度上升法

文章目录 了解PCA使用梯度上升法求解第一主成分使用梯度上升法求解第二主成分求数据前n个主成分使用sklearn中封装的PCA使用真实数据集 了解PCA PCA的概念&#xff1a;主成分分析(Principal Component Analysis&#xff0c;PCA)&#xff0c;是一种统计方法。通过正交变换将一组…

10分钟如何轻松掌握JMeter使用方法?

目录 引言 安装jmeter HTTP信息头管理器 JMeter断言 HTTP请求默认值来代替所有的域名与端口 JSON提取器来替换变量 结语 引言 想要了解网站或应用程序的性能极限&#xff0c;JMeter是一个不可或缺的工具。但是&#xff0c;对于初学者来说&#xff0c;该如何上手使用JMe…

【LLM】低成本部署大语言模型, 并且还能达到部署在GPU上差不多的效果

目录 前言 部署 效果 问题1&#xff1a;人类为什么需要睡觉&#xff1f; 问题2&#xff1a;世界上最高的山峰是什么&#xff1f; 前言 点进来看本文的应该都知道模型对硬件的要求很高, 那我也不废话了, 直接安排最近发现的一个开源项目, 它可以帮助我们降低部署模型的成…

按摩仪市场的AB面:暗战不止,迷雾未散

配图来自Canva可画 由于生活节奏的加快以及来自各方的压力&#xff0c;再加上熬夜、长时间低头玩手机等不良生活习惯&#xff0c;导致不少人的身体都出现了亚健康状态。不过&#xff0c;随着当下健康理念逐渐深入人心&#xff0c;人们对于健康的重视程度也持续提升。无论是刘畊…

如何挖到人生中第一个漏洞?保姆级漏洞挖掘教学

前言 有不少阅读过我文章的伙伴都知道&#xff0c;我从事网络安全行业已经好几年&#xff0c;积累了丰富的经验和技能。在这段时间里&#xff0c;我参与了多个实际项目的规划和实施&#xff0c;成功防范了各种网络攻击和漏洞利用&#xff0c;提高了安全防护水平。 也有很多小…

Java微服务商城高并发秒杀项目--013.SentinelResource的使用

在shop-order-server模块中新建AnnoController&#xff1a; RestController Slf4j public class AnnoController {RequestMapping("/anno1")SentinelResource(value "anno1",blockHandler"anno1BlockHandler",fallback "anno1Fallback&qu…