1.Qt Creator简介及Hello World

news2024/11/26 4:39:37

安装

下载链接

Qt 5.14.2下载

SDK建议的安装路径

SDK的案例中,宏定义默认要求直接安装在C盘
在这里插入图片描述

查看建议路径的流程

右键“解决方案”下的项目名称,选择最下面的“属性”
在这里插入图片描述
“C/C++” -> “常规” -> “附加包含目录” -> “右侧小箭头” -> “编辑”
在这里插入图片描述

Qt Creator环境

查看Qt版本

“工具” -> “选项” -> “Kits”
在这里插入图片描述

案例

选择案例项目,关闭打开的帮助文档,点击左栏“编辑”
在这里插入图片描述
点击左下角的锤子,构建项目
在这里插入图片描述
点击中间的绿色箭头运行:
在这里插入图片描述
运行结果展示:
在这里插入图片描述

Hello World

Qt Creator中运行

新建项目,命名为’demo1’,我的路径为 D:\QtCreatorProject
在这里插入图片描述
双击.ui文件,进入设计模式
在’Filter’处搜索’Label’,拖到中间。双击编辑为’hello,qt’
ctrl+R或点击绿色箭头运行,初次运行会提示保存
在这里插入图片描述
运行结果:
在这里插入图片描述

文件目录中运行

查看路径,发现多了个build······Debug文件,实际是默认的构造目录
在这里插入图片描述

demo1文件存放项目源文件,build······Debug文件存放编译后生成的文件
在这里插入图片描述
其中,realease文件是空的,debug文件如下
在这里插入图片描述
直接双击可执行文件demo1.exe,弹出警告
在这里插入图片描述
方法1(不建议):在Qt的安装路径 C:\Qt\Qt5.14.2\5.14.2\msvc2017_64\bin 找到所需dll文件,复制粘贴到debug,约6个dll需要复制(书中说复制6个后可以运行,但本人复制3个后,出现其他警告)
方法2(一劳永逸):把Qt安装路径的bin路径添加到环境变量,再双击demo1.exe
在这里插入图片描述

debug和release的区别

debug:调试版本,依赖的dll很大
release:发布版本

release版本程序的发布

左下角切换为release模式,点击运行

在这里插入图片描述
项目文件夹中又多了一个build······Release文件
在这里插入图片描述

Release的demo1.exe不能运行

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

设置应用程序图标

创建.ico图标文件
.ico图标文件复制到项目文件demo1中(本人将其命名为wx.ico)
在这里插入图片描述
双击.pro文件,如下位置添加代码

RC_ICONS = wx.ico

单击运行,demo1.exe图标改变
在这里插入图片描述

.ico is not in 3.00 format报错

Hello World纯代码实现

新建项目

在这里插入图片描述
新建的项目默认只有.pro

默认版本

//demo2.pro

QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
    main.cpp
FORMS += \
    hellodialog.ui

新建main.cpp
![在这里插入图片描述](https://img-blog.csdnimg.cn/fdd0b8ddfd964a36b6607232fc5bd6c9.
在这里插入图片描述

//main.cpp

#include<QApplication>
#include<QDialog>
#include<QLabel>

int main(int argc,char *argv[])
{
    QApplication a(argc,argv);
    QDialog w;
    QLabel label(&w);
    label.setText("hello world!");
    w.show();
    return a.exec();
}

在这里插入图片描述

调整尺寸

//main.cpp

#include<QApplication>
#include<QDialog>
#include<QLabel>

int main(int argc,char *argv[])
{
    QApplication a(argc,argv);
    QDialog w;
    w.resize(400,300);
    QLabel label(&w);
    label.move(120,120);
    label.setText("hello world!");
    w.show();
    return a.exec();
}

在这里插入图片描述
geometry

使用.ui

新建.ui文件
在这里插入图片描述)
在这里插入图片描述)
使用label,属性栏geometry的x和y设为120
在这里插入图片描述)
保存后构建工程,在build``````Debug中发现.ui文件生成的ui_hellodialog.h头文件

//main.cpp

#include"ui_hellodialog.h"

int main(int argc,char *argv[])
{
    QApplication a(argc,argv);
    QDialog w;
    Ui::HelloDialog ui;
    QLabel label(&w);
    ui.setupUi(&w);
    w.show();
    return a.exec();
}

在这里插入图片描述

自定义C++类

在这里插入图片描述)

类继承报错,,已经解决

在这里插入图片描述
默认的hellodialog.h

#ifndef HELLODIALOG_H
#define HELLODIALOG_H


class HelloDialog : public QDialog
{
public:
    HelloDialog();
};

#endif // HELLODIALOG_H

默认的hellodialog.cpp

#include "hellodialog.h"

HelloDialog::HelloDialog()
{

}

更改后的hellodialog.h

#ifndef HELLODIALOG_H
#define HELLODIALOG_H

#include <QDialog>

class HelloDialog : public QDialog
{
    Q_OBJECT

public:
    HelloDialog(QWidget *parent = nullptr);
};

#endif // HELLODIALOG_H

更改后的hellodialog.cpp

#include "hellodialog.h"

HelloDialog::HelloDialog(QWidget *parent)
    : QDialog(parent)
{
    // 在构造函数中设置对话框的内容和布局
}

添加.ui

//hellodialog.h

#ifndef HELLODIALOG_H
#define HELLODIALOG_H

#include <QDialog>

namespace Ui {
class HelloDialog;
}

class HelloDialog : public QDialog
{
    Q_OBJECT

public:
    HelloDialog(QWidget *parent = nullptr);
    ~HelloDialog();

private:
    Ui::HelloDialog *ui;

};

#endif // HELLODIALOG_H
//hellodialog.cpp

#include "hellodialog.h"
#include"ui_hellodialog.h"

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

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

参考书目

Qt Creator快速入门第三版

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

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

相关文章

【软件测试】3年测试岗碌碌无为?我到底该咋办?测试提升成长之路...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 无论哪个岗位&…

线程同步方式之三信号量

Linux线程同步方法之三 信号量 信号量本质上是一个计数器&#xff0c;用来表示公共资源中资源的数量。只要拥有信号量&#xff0c;未来一定能够拥有临界资源的一部分使用权。故申请信号量的本质就是对临界资源中特定的小块资源的预订机制。故能通过访问信号量就能提前知道临界…

Redis可视化工具-Another Redis Desktop Manager 安装与连接哨兵集群

目录 一、下载安装 1.1 下载 1.2 安装 二、使用 2.1 新建连接 2.2 新增数据 2.3 应用设置 2.3.1深色模式、语言 2.3.2多个连接的颜色标记 一、下载安装 Another Redis DeskTop Manager 是 Redis 可视化管理工具&#xff0c;体积小&#xff0c;完全免费。最重要的是稳定…

智慧物联网边缘协同感知(EICS)技术方案: 低功耗无线扫描唤醒技术

物联网的传感器或控制节点通常有体积限制&#xff0c;只能使用钮扣电池、小型电池&#xff0c;甚至使用能量收集源进行运作。在许多工业应用中&#xff0c;需要人工更换电池的成本&#xff0c;特别是在难以接近地方更换所需的成本&#xff0c;使得人们更加重视降低平均电流消耗…

缓存一致问题、幂等、jvm调优

缓存笔记 来自 程序员囧辉 黑马博学谷 幂等问题 1 缓存一致问题 1.1.同步删除 核心流程&#xff1a; 更新数据库数据删除缓存数据 问题&#xff1a; . 并发场景下存在脏数据 (并发有脏数据问题). 难以收拢所有更新数据库入口 (可能通过命令行、工具等删除db&#xff0c;…

[Golang] 设计模式以及单例设计模式实例实现

&#x1f61a;一个不甘平凡的普通人&#xff0c;致力于为Golang社区和算法学习做出贡献&#xff0c;期待您的关注和认可&#xff0c;陪您一起学习打卡&#xff01;&#xff01;&#xff01;&#x1f618;&#x1f618;&#x1f618; &#x1f917;专栏&#xff1a;算法学习 &am…

Django框架之视图的基本使用

Django框架之视图的基本使用 概述 在django中&#xff0c;视图方法简称视图&#xff0c;对web请求进行回应。 视图就是一个python函数&#xff0c;在views.py文件中定义。 定义视图 在project/myapp/views.py文件中定义 引入http from django.http import HttpResponse 视…

【C语言】实战练习

目录 1.计算体积&#xff1a; 2、根据父母身高计算孩子的理论身高&#xff1a; 3、三十六计的几计&#xff1a; 4、文本输出&#xff1a; 5、粮仓计数&#xff1a;​编辑 6、auto 7、static: 8、模拟用户注册系统&#xff1a; 1.计算体积&#xff1a; #include <std…

NetXpert XG2帮您解决“布线安装与维护”难题

在传输大量数据时&#xff0c;光纤变得越来越重要&#xff0c;而铜缆在未来也将继续发挥重要作用&#xff0c;因此我们不仅要比较两种类型布线的优缺点&#xff0c;还要探究光纤传输中的错误来源。 测试光缆传输损耗的准确性对于故障排除至关重要&#xff0c;特别是在光纤情况下…

27-Servlet执行原理

目录 1.Tomcat详解 ①接收请求&#xff1a; ②根据请求计算响应&#xff1a; ③返回响应&#xff1a; 2.Tomcat执行流程 2.1.Tomcat 初始化流程 2.2.Tomcat 处理请求流程 2.3.Servlet 的 service 方法的实现 在 Servlet 的代码中并没有写 main ⽅法&#xff0c;那么对应…

2022年中国预制菜市场规模已超过4000亿元,2026年将突破万亿

佛跳墙、小酥肉、酸菜鱼、猪肚鸡、煎牛排、炸鸡、小龙虾等等&#xff0c;这些需要花上长时间烹饪制作的大菜&#xff0c;现在只需用烤箱或空气炸锅几分钟就制作出来了&#xff0c;且味道还不赖。预制菜最大的优势在于方便&#xff0c;极大的省去了买菜洗菜、切菜、制作的繁琐程…

YOLOv5网络模型的结构原理讲解(全)

目录 前言1. 基本概念2. 输入端2.1 Mosaic 图像增强2.2 自适应锚框计算2.3 自适应图片缩放 3. Backbone层3.1 Focus结构3.2 CSP结构 3. Neck网络3.1 SPP结构3.2 PAN结构 4. 输出端4.1 Bounding box损失函数4.2 NMS非极大值抑制 前言 YOLOv5有几种不同的架构&#xff0c;各网络…

ChatGPT评微博热文“留给普通人的最后一扇门,快要关闭了”

目录 留给普通人的最后一扇门&#xff0c;快要关闭了 这篇文章你看过吗 普通人通过接受高等教育提升阶级的路还走得通吗&#xff0c;为什么大家都开始考公务员了 高等教育仍然是提升阶级的一条途径&#xff0c;但并不是唯一的途径。那还有哪些路径&#xff1f; 继续&#x…

【谷歌插件开发】获取当前网站COOKIE并上报HTTP-API

一 背景 由于本人每天需要登录网站查看数据并分析统计汇总&#xff0c;而每次机械式地搜索和简单计算&#xff0c;十分繁琐。我们可以写个定时任务&#xff0c;每天根据cookie获取网站数据并遍历统计。 脚本得以成功执行的关键是需要获取到COOKIE 故&#xff0c;写了个谷歌插件…

UE4架构初识(七)

目录 UE4仿真引擎学习 一、架构基础总结 1. 游戏世界 2. 数据和逻辑 3. 整体类图 UE4仿真引擎学习 一、架构基础总结 1. 游戏世界 在UE的眼里&#xff0c;游戏世界的万物皆Actor&#xff0c;Actor再通过Component组装功能。Actor又通过UChildActorComponent实现Actor之间的…

代码随想录之贪心合集

455 分发饼干 先排序之后按顺序比较 class Solution {public int findContentChildren(int[] g, int[] s) {//57Arrays.sort(g);Arrays.sort(s);int k0;int i0;int count0;while(k<s.length&&i<g.length){if(g[i]<s[k]){count;i;k;}else k;}return count;} }…

视频大文件传输的演变:从“卷轴男孩”到自动化

200年前&#xff0c;从纽约市到英国伦敦的单程旅行需要乘坐一艘跨大西洋轮船将近三周——如果你能负担得起的话&#xff0c;那就是。那些不能在满是汗水、狭窄的帆船上安顿大约一个半月的人。 今天&#xff0c;视频专业人士能够在几小时甚至几分钟内跨越相同的物理距离传输大量…

烟雾弹?突然转变?如何看待微软发声:中国是主要的对手

是的&#xff0c;我又回来了&#xff0c;今天要跟各位唠的还是ChatGPT的嗑。今天的新闻是啥呢&#xff1f; 《微软总裁&#xff1a;中国将是 ChatGPT 的主要对手&#xff0c;我们的优势不大》 说实话&#xff0c;我看到这个新闻的时候&#xff0c;大感震撼&#xff0c;在相关报…

YOLOv5快速入门demo

文章目录 1. 官网下载 yolo_master2. 下载得到yolov5-maser.zip 对其进行解压3. 安装所需要的包4. 官网下载一个与训练模型5. 测试一个小demo 使用detect.py6. 训练一个模型 1. 官网下载 yolo_master https://gitcode.net/mirrors/ultralytics/yolov5 下载克隆 2. 下载得到…

HART协议数据格式避坑(C语言压缩字符串Packed-ASCII和ASCII转换)

HART协议数据格式避坑&#xff08;C语言压缩字符串Packed-ASCII和ASCII转换&#xff09; 首先HART数据格式如下&#xff1a; 重点就是浮点数和字符串类型 Latin-1就不说了 基本用不到 浮点数 浮点数里面 如 0x40 80 00 00表示4.0f 在HART协议里面 浮点数是按大端格式发送的…