一、初识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 等。

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

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

相关文章

【小程序 滚动条 滑块 音频 组件】

滚动条组件 1. scroll-view 视图容器内 2. scroll-x 允许横向滚动 3. scroll-y 允许纵向滚动 4. scroll-into-view“childs” 绑定子元素 5. scroll-top 竖向滚动条位置 6. scroll-left 横向滚动条位置 7. scroll-into-view 值应为某子元素id(id不能以数字开头&am…

NPM 发包的命名限制

每一个车手都有一个造车的梦想,作为一个前端工程师那必须要有一个造前端框架的梦想!所以最近尝试写了一个前端框架,本来包名是 ecojs,结果发包的时候居然遇见了以下的错误: 大概意思就是已经有包叫做 eco.js 了&#x…

身处加密娱乐时代,我们需要的是新技术还是新应用

撰文:Matti 编译:Yangz,Techub News 点击查看文章来源:Techub News 现实的情况会让你不禁自问,「我们是否需要更多的基础设施来吸引更多的用户?」答案是,相较于新应用,我们并不需…

Aigtek功率放大器的主要性能要求有哪些

功率放大器是电子系统中的重要组件,用于将低功率信号放大到高功率水平。功率放大器的性能直接影响到信号的放大质量和系统的整体性能。下面西安安泰将介绍功率放大器的主要性能要求。 增益:功率放大器应当具有足够的增益,即将输入信号的幅度放…

Java类图

1、idea设置 setting>tools>diagrams 2、勾选参数 3、效果

win10键盘按乱了,如何恢复?

今天键盘被宝宝给按乱了,好不容易给重新调整回来,记录备忘: 1、win10的asdf和方向键互换了: 使用Fnw键来回切换,OK! 2、键盘的win键失效,例如:按winD无法显示桌面。此时&#xf…

音视频开发14 FFmpeg 视频 相关格式分析 -- H264 NALU格式分析

H264简介-也叫做 AVC H.264,在MPEG的标准⾥是MPEG-4的⼀个组成部分–MPEG-4 Part 10,⼜叫Advanced Video Codec,因此常常称为MPEG-4 AVC或直接叫AVC。 原始数据YUV,RGB为什么要压缩-知道就行 在⾳视频传输过程中,视频⽂件的传输…

能拖拽生成几个图表,就叫BI,就叫低代码,顶多算个报表工具

一、什么是BI BI(Business Intelligence)是指通过数据分析和可视化工具来帮助企业做出决策的过程和技术。它远远不止于简单的拖拽生成图表,而是通过对数据的深入分析和挖掘,提供更全面、准确的信息支持。 BI(Business…

黑马es集群

1、为什么要做es集群 单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点 单点故障问题:将分片数据在不同节点备份(replica) 2、搭建es集群 1、用…

【JMeter接口自动化】第3讲 Jmeter语言及外观配置

Jmeter语言配置 方法一:暂时生效,下次打开JMeter还会恢复默认配置 Jmeter安装后,默认语言是英文,可以在“选项”——“选择语音”中更改 方法二,修改配置文件,永久生效 修改jmeter.properties文件 Jmete…

element table表格行列合并span-method,根据数据动态行列合并

表格行列合并需要用到 table的方法 span-method 根据数据来进行动态的行列合并&#xff0c;实例如下&#xff1a; <el-table:data"tableData":span-method"objectSpanMethod" style"width: 100%"><el-table-columnprop"key"l…

JSON源码类学习

json源码学习 parse把json转换成Object parseObject转换为jsonObject parseArray从字符串数组解析成真正的数组 tojsonString把真正的json解析json 数组的方法 作用&#xff1a;类型转换 为什么要做类型转换 开发一个方法验证 这个方法先封装方法&#xff0c;是否为json …

成功解决“ImportError: cannot import name ‘mapping‘ from ‘collections‘”错误的全面指南

成功解决“ImportError: cannot import name ‘mapping’ from ‘collections’”错误的全面指南 成功解决“ImportError: cannot import name ‘mapping’ from ‘collections’”错误的全面指南 一、引言 在Python编程中&#xff0c;当我们尝试从某个模块中导入某个名称时&…

污水净化之旅:可视化技术揭秘城市“血液”的循环奥秘

在繁华的都市背后&#xff0c;有一个默默守护着我们的“肾脏”——污水处理厂。它悄无声息地处理着每天产生的污水&#xff0c;确保我们的生活环境洁净美好。但你知道这个“肾脏”是如何工作的吗&#xff1f;今天&#xff0c;就让我们一起走进污水处理的神秘世界&#xff0c;通…

手机改ip地址的软件怎么用

随着互联网的普及&#xff0c;我们的日常生活和工作已经离不开网络。然而&#xff0c;有时出于安全或隐私的需要&#xff0c;我们可能希望更改手机的IP地址。IP地址作为网络设备的标识&#xff0c;具有极高的敏感性&#xff0c;因此&#xff0c;如何安全、有效地更改手机IP地址…

Java使用Hutool工具类轻松生成验证码

&#x1f469;&#x1f3fd;‍&#x1f4bb;个人主页&#xff1a;阿木木AEcru &#x1f525; 系列专栏&#xff1a;《Docker容器化部署系列》 《Java每日面筋》 &#x1f4b9;每一次技术突破&#xff0c;都是对自我能力的挑战和超越。 目录 一、效果展示1.1 扭曲干扰的验证码1.…

使用pytorch构建ResNet50模型训练猫狗数据集

数据集 1.导包 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader from torchvision import datasets, transforms, models import numpy as np import matplotlib.pyplot as plt import os from tqdm.auto import t…

java期末突击

目录 1. 快速入门 2. 类 3. 成员方法 4. 构造器 5. 单例模式 6. 继承 7. 抽象类 8. 多线程&#xff08;Thread与Runnable&#xff09; 1. 快速入门 public class Hello {public static void main(String[] args){System.out.println("Hello,World&q…

开源项目的 README.md 这样写,hr 看了都心动

大家好&#xff0c;我是南城余。 最近在搞项目的开源 README.md 时&#xff0c;看到有的大佬的 README.md 前面都会有 badge 标识和多彩的 tag 标签。都看着超级高级&#xff0c;就想着也来实践下。 今天一篇文章带着大家个性化你的 README.md。如下图片&#xff1a; 这里我先…

【Linux】进程池

大致草稿 思维导图 学习目标 一、进程池的代码编写顺序 在进程池中&#xff0c;我们要创建多个子进程&#xff0c;并且对多个子进程和父进程建立管道的关系&#xff0c;确保父进程和子进程之间可以进行相互通信。 父进程就是master&#xff0c;而子进程就是work/slaver。大致…