当前位置: 首页 > news >正文

一、初识Qt 之 Hello world

一、初识Qt 之 Hello world

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

初识Qt 之 Hello world文章目录

  • 一、Qt 简介
  • 二、Qt 获取安装
  • 三、Qt 初步使用
  • 四、Qt 之 Hello world
    • 1.新建一个项目
  • 总结


一、Qt 简介

C ++是一种通用的标准编程语言,使用任何编辑器都可以编写 C ++源程序,然后利用 C ++编译器对程序进行编译,就可以生成可执行的程序。

为了方便进行 C ++程序的编写和编译,有各种综合开发环境( Integrated Developing Environment , IDE ),如 Visual Studio 就是 Windows 平台上常见的编写 C ++程序的 IDE 。一个 IDE 不仅提供程序的编辑和编译,一般还提供一套基本类库,用于提供支持平台应用程序开发的各种基本类,如 Visual Studio 使用 MFC 进行 Windows 平台的应用程序开发。

Qt 是一套应用程序开发类库,但与 MFC 不同, Qt 是跨平台的开发类库。 Qt 支持 PC 和服务器的平台,包括 Windows 、 Linux 、 macOS 等,还支持移动和嵌入式操作系统,如 iOS 、 Embedded Linux 、 Android 、 WinRT 等。跨平台意味着只需编写一次程序,在不同平台上无需改动或只需少许改动后再编译,就可以形成在不同平台上运行的版本。这种跨平台功能为开发者提供了极大的便利。

Qt 最早是由挪威的 Haavard Nord 和 Eirik Chambe - Eng 在1991年开始开发的,在1994年发布,并成立了一家名为 Trolltech 的公司。 Trolltech 公司在2008年被诺基亚公司收购。2012年, Qt 被 Digia 公司收购,并在2014年成立了独立的 Qt 公司,专门进行 Qt 的开发、维护和商业推广。

C ++语言使用广泛,长盛不衰,易在不同平台上移植,其编译生成的程序执行效率高,所以在专业研究领域很多开源的算法程序或类库都是用 C ++编写的。使用 QtC ++编写应用程序,可以使自己的应用程序具有跨平台移植的功能,也可以利用各种开源的类库资源。所以,扎实地掌握 QtC ++编程就如同掌握了一件利器,无论是通过编程实现自己的专业研究成果,还是从事专业软件开发都具有长远意义。

二、Qt 获取安装

在总结归纳过程中我们使用的是Windows10 下的Qt5.9开发,有在其他系统开发设计可以到官网进行下载对应的 Qt 版本。

Qt获取可以从百度云盘进行获取,网上有很多安装教程,在此就不进行归纳总结,主要注意安装过程中的选配和安装路径。

安装包链接码:
链接:https://pan.baidu.com/s/1nVTcX4CcvISbc3uNCT2quQ?pwd=uwft
提取码:uwft

. MinGW 5.3.032 bit 编译器模块。 MinGW 是 Minimalist GNU for Windows 的缩写, MinGW 是 Windows 平台上使用的 GNU 工具集导入库的集合。
·用于 UWP 编译的模块。 UWP 是 Windows 10中 Universal Windows Platform 的简称,有不同编译器类型的 UWP 。
·用于 windows 平台上的 MSVC 编译器模块,如msvc201532- bit 和msvc201564- bit 等。要
安装 MSVC 编译器的模块,需要计算机上已经安装相应版本的 Visual Studio .
·用于 Android 平台的模块,如 Android x86和 Android ARMv7。
· Sources 是 Qt 的源程序。
· Qt Charts 是二维图表模块,用于绘制柱状图、饼图、曲线图等常用二维图表。
· Qt Data Visualization 是三维数据图表模块,用于数据的三维显示,如散点的三维空间分布三维曲面等。
· Qt Purchasing 、 Qt Webor1览( Technology Preview )。
· Qt Scritp ( Deprecated )是脚本模块,括号里的" Deprecated "表示这是个已经过时模块。
" Tools "节点下面是一些工具软件,包括内容如下。
· Qt Creator 4.3.1是用于 Qt 程序开发的 IDE 。
. MinGW 5.3.0是 MinGW 编译工具链。
. Strawberry Perl 是一个 Perl 语言工具。
根据个人的需要设置安装选项,无需选择所有的安装选项。例如,如果不需要进行 UWP 台的开发, UWP 模块就可以都不选;如果不是为和以前开发的源程序兼容,过时的模块不要选择如 Qt Seript 就是已过时的模块。

在这里插入图片描述

三、Qt 初步使用

(1)启动Qt creator
其中有大量的实例,选择某个实例就可以在Qt creator中打开该项目源程序。
在这里插入图片描述

四、Qt 之 Hello world

1.新建一个项目

选择新建项目
在这里插入图片描述
选择创建一个窗口应用
在这里插入图片描述

选择一个项目存储路径
在这里插入图片描述
在下面界面会有选项基类,我们默认选择,后续会根据进度进行其他基类的演示。
在这里插入图片描述

至此项目创建成功,在Forms中就是窗口界面,其他的.h/.cpp文件分别在不同文件家中,如图所示。
在这里插入图片描述
双击mainwindow.ui文件,就会有ui设计窗口
在这里插入图片描述我们在DISPLAY WIDGETS分组中,拖一个Label组件拖进窗口中
在这里插入图片描述

在窗口右下方属性编辑器例编辑Font属性,Point Size改为12,勾选Bold加粗
在这里插入图片描述
选择构建工具,然后直接 点击 运行,可以实现窗口弹出
在这里插入图片描述

设计的窗口有 分辨率 问题。
在这里插入图片描述

在main中增加
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true);
对高分辨率进行适应

int main(int argc, char *argv[])
{QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true);
//    QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps, true);
//    QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

再次运行,显示串口正常,与设计的一致

在这里插入图片描述

总结

经过20多年的发展, Qt 已经成为最优秀的跨平台开发框架之一,在各行各业的项目开发中得到广泛应用。许多大型软件都是用 Qt 开发的,如 Autodesk Maya 、 Google Earth 、 Skype 、 WPS Office 等。

相关文章:

一、初识Qt 之 Hello world

一、初识Qt 之 Hello world 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 初识Qt 之 Hello world文章目录 一、Qt 简介二、Qt 获取安装三、Qt 初步使用四、Qt 之 Hello world1.新建一个项目 总结 一、Qt 简介 C &#xf…...

nginx搭建简单负载均衡demo(springboot)

目录 1 安装nignx 1.1 执行 brew install nginx 命令(如果没安装brew可百度搜索如何安装brew下载工具。类似linux的yum命令工具)。 1.2 安装完成会有如下提示:可以查看nginx的配置文件目录。 1.3 执行 brew services start nginx 命令启动…...

SpringBoot的第二大核心AOP系统梳理

目录 1 事务管理 1.1 事务 1.2 Transactional注解 1.2.1 rollbackFor 1.2.2 propagation 2 AOP 基础 2.1 AOP入门 2.2 AOP核心概念 3. AOP进阶 3.1 通知类型 3.2 通知顺序 3.3 切入点表达式 execution切入点表达式 annotion注解 3.4 连接点 1 事务管理 1.1 事务…...

react、vue动态form表单

需求在日常开发中反复写form 是一种低效的开发效率,布局而且还不同这就需要我们对其封装 为了简单明了看懂代码,我这里没有组件,都放在一起,简单抽离相信作为大佬的你,可以自己完成, 一、首先我们做动态f…...

halcon程序如何导出C#文件

1.打开halcon文件; 2.写好需要生成C#文件的算子或函数; 3.找到档案-输出,如下图; 4.点击输出,弹出如下窗口 (1)可以修改导出文件的存储路径 (2)选择C#-HALCON/.NET &…...

RabbitMQ三、springboot整合rabbitmq(消息可靠性、高级特性)

一、springboot整合RabbitMQ(jdk17)(创建两个项目,一个生产者项目,一个消费者项目) 上面使用原生JAVA操作RabbitMQ较为繁琐,很多的代码都是重复书写的,使用springboot可以简化代码的…...

第八十九周周报

学习目标: 论文 学习时间: 2024.05.25-2024.05.31 学习产出: 一、论文 SAN: INDUCING METRIZABILITY OF GAN WITH DISCRIMINATIVE NORMALIZED LINEAR LAYER 将GAN与切片最优输运联系起来,提出满足方向最优性、可分离性和单射…...

Centos升级Openssh版本至openssh-9.3p2

一、启动Telnet服务 为防止升级Openssh失败导致无法连接ssh,所以先安装Telnet服务备用 1.安装telnet-server及telnet服务 yum install -y telnet-server* telnet 2.安装xinetd服务 yum install -y xinetd 3.启动xinetd及telnet并做开机自启动 systemctl enable…...

茉莉香飘,奶茶丝滑——周末悠闲时光的绝佳伴侣

周末的时光总是格外珍贵,忙碌了一周的我们,终于迎来了难得的闲暇。这时,打开喜欢的综艺,窝在舒适的沙发里,再冲泡一杯香飘飘茉莉味奶茶,一边沉浸在剧情的海洋中,一边品味着香浓丝滑的奶茶&#…...

揭秘:Java字符串对象的内存分布原理

先来看看下面寄到关于String的真实面试题,看看你废不废? String str1 "Hello"; String str2 "Hello"; String str3 new String("Hello"); String str4 new String("Hello");System.out.println(str1 str2)…...

Vue.js - 生命周期与工程化开发【0基础向 Vue 基础学习】

文章目录 Vue 的生命周期Vue 生命周期的四个阶段Vue 生命周期函数(钩子函数 工程化开发 & 脚手架 Vue CLI**开发 Vue 的两种方式:**脚手架目录文件介绍项目运行流程组件化开发 & 根组件App.vue 文件(单文件组件)的三个组成…...

Element-UI 快速入门指南

Element-UI 快速入门指南 Element-UI 是一套基于 Vue.js 的桌面端组件库,由饿了么前端团队开发和维护。它提供了丰富的 UI 组件,帮助开发者快速构建美观、响应式的用户界面。本篇文章将详细介绍 Element-UI 的安装、配置和常用组件的使用方法,帮助你快速上手并应用于实际项…...

2024华为OD机试真题-整型数组按个位值排序-C++(C卷D卷)

题目描述 给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序, 十进制最低位相同的元素,相对位置保持不变。 当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。 输入描述 给定一个非空数组,其元素数据类型…...

善听提醒遵循易经原则。世界大同只此一路。

如果说前路是一个大深坑,那必然是你之前做的事情做的不太好,当坏的时候,坏的结果来的时候,是因为你之前的行为,你也就不会再纠结了,会如何走出这个困境,是好的来了,不骄不躁&#xf…...

CrossOver有些软件安装不了 用CrossOver安装软件后如何运行

CrossOver为用户提供了三种下载软件的方式分别是:搜索、查找分类、导入。如果【搜索】和【查找分类】提供的安装资源不能成功安装软件,那么我们可以通过多种渠道下载安装包,并将安装包以导入的方式进行安装。这里我们以QQ游戏为例&#xff0c…...

在vue中如何使用leaflet图层展示地图

在vue中如何使用leaflet <template><div id"map" class"map"></div> </template><script> export default {data () {return {};},mounted(){this.initMaps()},methods: {initMaps () {const map L.map(map, {zoomControl…...

mybatisplus 字段存的是json 在查询的时候怎么映射成对象

数据库交互对象 TableName(value "表名", autoResultMap true)TableField(typeHandler JacksonTypeHandler.class, value "user_info")private User user;autoResultMap 是一个 MyBatis-Plus 中的注解属性&#xff0c;用于控制是否自动生成结果映射。…...

Python 学习笔记【1】

此笔记仅适用于有任一编程语言基础&#xff0c;且对面向对象有一定了解者观看 文章目录 数据类型字面量数字类型数据容器字符串列表元组 type()方法数据类型强转 注释单行注释多行注释 输出基本输出连续输出&#xff0c;中间用“,”分隔更复杂的输出格式 变量定义del方法 标识符…...

Git系列:rev-parse 使用技巧

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...

【Java数据结构】详解LinkedList与链表(一)

&#x1f512;文章目录&#xff1a; 1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; 2.ArrayList的缺陷 3.链表的概念及结构 4.无头单向非循环链表的实现 4.1成员属性 4.2成员方法 createList display——打印链表 addFirst——头插 addLast…...

PDF高效编辑器革新:一键智能转换PDF至HTML,轻松开启文件处理全新时代!

信息爆炸的时代&#xff0c;PDF文件因其跨平台、不易修改的特性&#xff0c;成为了商务、教育、出版等领域不可或缺的文件格式。然而&#xff0c;PDF文件的固定性也带来了诸多不便&#xff0c;特别是在需要对其内容进行编辑或格式转换时。这时&#xff0c;一款高效、易用的PDF编…...

JDBC知识

JDBC是什么? 这工作中我们针对数据库的操作,实际上很少会用到SQL语句,通过命令行/图形化来操作数据库,更多的是通过主流的编程语言来对数据库进行操作,即使通过代码来操作数据,我们还是会使用到SQL语句,所以掌握SQL语句也是很重要的. 如何通过代码操作数据库? 通过代码操作…...

C++操纵符用法

C中的操纵符&#xff08;Manipulators&#xff09;是用于格式化输入输出的特殊工具。它们可以在输出流中控制各种格式&#xff0c;如设置字段宽度、精度、填充字符等。以下是一些常用的操纵符及其用法&#xff1a; setw(int width): 设置字段宽度为width个字符。 cout <<…...

【一步一步了解Java系列】:子类继承以及代码块的初始化

看到这句话的时候证明&#xff1a;此刻你我都在努力 加油陌生人 个人主页&#xff1a;Gu Gu Study专栏&#xff1a;一步一步了解Java 喜欢的一句话&#xff1a; 常常会回顾努力的自己&#xff0c;所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者&#xff1a;小闭 …...

探索Expect Python用法:深入解析与实战挑战

探索Expect Python用法&#xff1a;深入解析与实战挑战 在自动化和脚本编写领域&#xff0c;Expect Python已经成为了一种强大的工具组合。它结合了Expect的交互式会话处理能力和Python的编程灵活性&#xff0c;为开发者提供了一种全新的方式来处理复杂的自动化任务。然而&…...

【PostgreSQL17新特性之-explain命令新增选项】

EXPLAIN是一个用于显示语句执行计划的命令&#xff0c;可用于显示以下语句类型之一的执行计划&#xff1a; - SELECT - INSERT - UPDATE - DELETE - VALUES - EXECUTE - DECLARE - CREATE TABLE AS - CREATE MATERIALIZED VIEWPostgreSQL17-beta1版本近日发布了&#xff0c;新…...

JAVA实现人工智能,采用框架SpringAI

文章目录 JAVA实现人工智能,采用框架SpringAISpring AI介绍使用介绍项目前提项目结构第一种方式采用openai1. pom文件&#xff1a; 2. application.yml 配置3.controller 实现层 项目测试 JAVA实现人工智能,采用框架SpringAI Spring AI介绍 Spring AI是AI工程师的一个应用框架…...

基础—SQL—DQL(数据查询语言)分组查询

一、引言 分组查询的关键字是&#xff1a;GROUP BY。 二、DQL—分组查询 1、语法 SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组后过滤条件 ]; 注意&#xff1a; 1、[ ] 里的内容可以有可以没有。 2、这条SQL语句有两块指定条件的地方&#…...

从CSV到数据库(简易)

需求&#xff1a;客户上传CSV文档&#xff0c;要求CSV文档内容查重/插入/更新相关数据。 框架&#xff1a;jdbcTemplate、commons-io、 DB&#xff1a;oracle 相关依赖&#xff1a; 这里本来打算用的2.11.0&#xff0c;无奈正式项目那边用老版本1.3.1&#xff0c;新版本对类型…...

K210视觉识别模块学习笔记3:内存卡写入拍摄图片_LED三色灯的操作_按键操作_定时器的配置使用

今日开始学习K210视觉识别模块: LED三色灯的操作_按键操作_定时器的配置使用_内存卡写入拍摄图片 亚博智能的K210视觉识别模块...... 固件库版本: canmv_yahboom_v2.1.1.bin 本文最终目的是编写一个按键拍照的例程序&#xff1a; 为以后的专用场景的模型训练做准备&#xf…...