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

初识Qt | 从安装到编写Hello World程序

文章目录

        • 1.前端开发简单分类
        • 2.Qt的简单介绍
        • 3.Qt的安装和环境配置
        • 4.创建简单的Qt项目

1.前端开发简单分类

前端开发,这里是一个广义的概念,不单指网页开发,它的常见分类

  • 网页开发:前端开发的主要领域,使用HTML、CSS 和 JavaScript等技术来创建运行在浏览器中的应用
  • 桌面应用开发:虽然桌面应用通常是由后端语言(如C++、Java或C#)开发的,但现在也可以使用前端技术来开发桌面应用(电脑上的应用)。例如,Electron框架允许开发者使用HTML、CSS和JavaScript来创建跨平台的桌面应用
  • 移动应用开发:开发手机应用,比如使用Java开发Android应用。
2.Qt的简单介绍

Qt 是⼀个 跨平台(Linux、Mac、Windows)的 C++ 图形⽤⼾界⾯(GUI) 应⽤程序框架。简单来说Qt用来开发PC端的应用程序,Windows下(主要是在Windows上开发):WPS Office 办公软件、VirtualBox等,Linux的KDE桌面都是使用Qt来开发的。当然Qt也支持移动应用开发,但是这是一个边缘的解决方案。

框架和库的理解

框架是各位大佬编写的解决一些问题的通用代码,我们普通的程序员在这些大佬的基础之上,填充代码完成自己的需求,这可谓是站在巨人的肩膀上!当然框架会限定我们编写的代码的自由,但能保证我们编写出来代码的下限!

在编程中,自由,就意味着更容易出错,比如:C语言中的指针很灵活,为程序员提供更加自由的操作,但是指针也更容易出错;C/C++为提供自由内存管理,但是也更容易出错!Java就不用考虑这种问题,当然自由也不都是不好的,一些东西不够灵活,注定了有些事情是做不了的!

对应库也是,大佬写的代码,但是库的使用主体是程序员,什么时候使用库,使用什么库,对库函数的调用使用在代码的什么地方,程序员能更自由的控制,而框架是相对固定的!

Windows下的桌面应用开发方案

  • 调用原始的Windows系统API
  • MFC,的用于创建Windows应用程序的应用程序框架。由Microsoft公司提供,MFC是为C++语言设计的,它提供了一组类,这些类封装了Windows API,使得开发Windows应用程序更加方便。
  • 使用Qt方案(比较主流的方案)
  • C#(“C Sharp”)由Microsoft开发的面向对象的编程语言开发
  • Electron框架允许开发者使用HTML、CSS和JavaScript来创建跨平台的桌面应用,但是这样的方案比较大的缺点是效率问题,当然也会有一些应用用这种方式开发:如VSCode

Qt 的发展史

1991 年 Qt 最早由奇趣科技开发;

1996 年 进⼊商业领域,它也是⽬前流⾏的 Linux 桌⾯环境 KDE 的基础;

2008 年 奇趣科技被诺基亚公司收购,Qt 称为诺基亚旗下的编程语⾔;

2012 年 Qt ⼜被 Digia 公司收购;

2014 年 4 ⽉ 跨平台的集成开发环境 Qt Creator3.1.0 发布,同年 5 ⽉ 20 ⽇发布了 Qt 5.3 正式版,⾄ 此 Qt 实现了对 IOS、Android、Embedded 等各平台的全⾯⽀持。

Qt 的优点

  • 跨平台,⼏乎⽀持所有的平台;

  • 可以进⾏嵌⼊式开发。

  • ⼀定程度上简化了内存回收机制;

3.Qt的安装和环境配置

Qt的官网:网址

国内清华镜像源:网址

关于开发环境配置的理解

一般来说配置开发环境需要下载:软件开发工具包(Software Development Kit,简称SDK) + 代码编辑器。 比如:配置Java开发环境需要下载JDK(Java的SDK)然后使用代码编辑器就可以编写代码。当然我们下载一些IDE(Entegrated Development Environment 集成开发环境)就可以有SDK和代码编写的功能!

编写C++代码的时候使用,VS下载即用,也不用下载SDK,它内置了这些工具!再如开箱即用的JetBrains全家桶;如果使用VSCode编辑器,然后下载插件也能开发;在搭建Qt开发环境本质上,要有C++编译器,SDK和代码编辑器,但是下载Qt SDK就有编辑器和官方提供的Qt Creator编写代码

Qt的安装

我选择下载的是5.__的版本,软件并不要求最新的!最新的软件可能会引入一些新的特性,但是也有可能会引入一些难以解决的Bug,相对于使用新特性而言,我们更希望我们使用的版本是稳定的没有隐藏的Bug! 单击下载好的安装包进行安装
在这里插入图片描述

安装Qt时遇到,下面的这些页面需要注意下,否则一路下一步即可

在这里插入图片描述

上面如果不想注册直接断开网络即可!

在这里插入图片描述

上面选择安装C++编译器MinGW,当然其他的插件,可以在使用的时候安装!出现下面的界面说明Qt安装成功!

在这里插入图片描述

Qt的相关工具

在这里插入图片描述

配置环境变量

环境变量相当于进程间通信的一种简单方式!配置环境变量是将一些命令、程序等的路径配置成全局的,方便直接查找!当然有些时候不是必须的!

将下面的这个路径配置到环境变量中:D:\software\qt\5.14.0\mingw73_64\bin

在这里插入图片描述

4.创建简单的Qt项目

在这里插入图片描述

点击文件,创建文件或项目

在这里插入图片描述

选择传统的GUI开发方式Qt Widegets

在这里插入图片描述

选择一个不带中文的路径! 注意:使用中文可能会构建失败!!

在这里插入图片描述

使用老牌的Qt构建工具qmake,CMake也是构建工具并非Qt专属,Qbs新生的构建工具(几乎没人用);这些工具构建会用到一些元编程的技术(用代码生成代码)

在这里插入图片描述

QMainWindow完成的程序窗口;QWidgt表示一个控件;这里先选择QWidgt即可!

在这里插入图片描述

关于国际化,直接 即可!

在这里插入图片描述

在这里插入图片描述

将项目添加到版本控制系统,选择 即可

输出Hello World

在这里插入图片描述

点击widget.ui

在这里插入图片描述

通过拖拽的方式,使用Label编写!然后点击运行,跳出界面
在这里插入图片描述

相关文章:

初识Qt | 从安装到编写Hello World程序

文章目录 1.前端开发简单分类2.Qt的简单介绍3.Qt的安装和环境配置4.创建简单的Qt项目 1.前端开发简单分类 前端开发,这里是一个广义的概念,不单指网页开发,它的常见分类 网页开发:前端开发的主要领域,使用HTML、CSS …...

机器学习:过拟合和欠拟合的介绍与解决方法

过拟合和欠拟合的表现和解决方法。 其实除了欠拟合和过拟合,还有一种是适度拟合,适度拟合就是我们模型训练想要达到的状态,不过适度拟合这个词平时真的好少见。 过拟合 过拟合的表现 模型在训练集上的表现非常好,但是在测试集…...

变分自编码器(VAE)PyTorch Lightning 实现

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…...

设备驱动开发_1

可加载模块如何工作的 主要内容 描述可加载模块优势使用模块命令效率使用和定义模块密钥和模块工作1 描述可加载模块优势 开发周期优势: 静态模块在/boot下的vmlinuz中,需要配置、编译、重启。 开发周期长。 LKM 不需要重启。 开发周期优于静态模块。 2 使用模块命令效率…...

C语言位域(Bit Fields)知识点精要解析

在C语言中,位域(Bit Field)是一种独特的数据结构特性,它允许程序员在结构体(struct)中定义成员变量,并精确指定其占用的位数。通过使用位域,我们可以更高效地利用存储空间&#xff0…...

离散数学——图论(笔记及思维导图)

离散数学——图论(笔记及思维导图) 目录 大纲 内容 参考 大纲 内容 参考 笔记来自【电子科大】离散数学 王丽杰...

opencv图像像素的读写操作

void QuickDemo::pixel_visit_demo(Mat & image) {int w image.cols;//宽度int h image.rows;//高度int dims image.channels();//通道数 图像为灰度dims等于一 图像为彩色时dims等于三 for (int row 0; row < h; row) {for (int col 0; col < w; col) {if…...

Java学习第十四节之冒泡排序

冒泡排序 package array;import java.util.Arrays;//冒泡排序 //1.比较数组中&#xff0c;两个相邻的元素&#xff0c;如果第一个数比第二个数大&#xff0c;我们就交换他们的位置 //2.每一次比较&#xff0c;都会产生出一个最大&#xff0c;或者最小的数字 //3.下一轮则可以少…...

第1章 计算机网络体系结构-1.1计算机网络概述

1.1.1计算机网络概念 计算机网络是将一个分散的&#xff0c;具有独立功能的计算机系统通过通信设备与路线连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统。(计算机网络就是一些互连的&#xff0c;自治的计算机系统的集合) 1.1.2计算机网络的组成 从不同角…...

蓝桥杯:C++排序

排序 排序和排列是算法题目常见的基本算法。几乎每次蓝桥杯软件类大赛都有题目会用到排序或排列。常见的排序算法如下。 第(3)种排序算法不是基于比较的&#xff0c;而是对数值按位划分&#xff0c;按照以空间换取时间的思路来排序。看起来它们的复杂度更好&#xff0c;但实际…...

数据结构-堆

1.容器 容器用于容纳元素集合&#xff0c;并对元素集合进行管理和维护&#xff0e; 传统意义上的管理和维护就是&#xff1a;增&#xff0c;删&#xff0c;改&#xff0c;查&#xff0e; 我们分析每种类型容器时&#xff0c;主要分析其增&#xff0c;删&#xff0c;改&#xff…...

奔跑吧小恐龙(Java)

前言 Google浏览器内含了一个小彩蛋当没有网络连接时&#xff0c;浏览器会弹出一个小恐龙&#xff0c;当我们点击它时游戏就会开始进行&#xff0c;大家也可以玩一下试试&#xff0c;网址&#xff1a;恐龙快跑 - 霸王龙游戏. (ur1.fun) 今天我们也可以用Java来简单的实现一下这…...

Ubuntu 1804 And Above Coredump Settings

查看 coredump 是否开启 # 查询&#xff0c; 0 未开启&#xff0c; unlimited 开启 xiaoUbuntu:/var/core$ ulimit -c 0# 开启 xiaoUbuntu:/var/core$ ulimit -c unlimited查看 coredump 保存路径 默认情况下&#xff0c;Ubuntu 使用 apport 服务处理 coredump 文件&#xff…...

docker 2:安装

docker 2&#xff1a;安装 ‍ ubuntu 安装 docker sudo apt install docker.io‍ 把当前用户放进 docker 用户组&#xff0c;避免每次运行 docker 命都要使用 sudo​ 或者 root​ 权限。 sudo usermod -aG docker $USER​id $USER ​看到用户已加入 docker 组 ​​ ‍ …...

LeetCode Python - 19.删除链表的倒数第N个结点

目录 题目答案运行结果 题目 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5] 示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&a…...

Spring Boot 笔记 005 环境搭建

1.1 创建数据库和表&#xff08;略&#xff09; 2.1 创建Maven工程 2.2 补齐resource文件夹和application.yml文件 2.3 porn.xml中引入web,mybatis,mysql等依赖 2.3.1 引入springboot parent 2.3.2 删除junit 依赖--不能删&#xff0c;删了会报错 2.3.3 引入spring web依赖…...

【解决(几乎)任何机器学习问题】:超参数优化篇(超详细)

这篇文章相当长&#xff0c;您可以添加至收藏夹&#xff0c;以便在后续有空时候悠闲地阅读。 有了优秀的模型&#xff0c;就有了优化超参数以获得最佳得分模型的难题。那么&#xff0c;什么是超参数优化呢&#xff1f;假设您的机器学习项⽬有⼀个简单的流程。有⼀个数据集&…...

面试计算机网络框架八股文十问十答第七期

面试计算机网络框架八股文十问十答第七期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01;关注专栏后就能收到持续更新&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1&#xff09;UDP协议为什么不可…...

Codeforces Round 926 (Div. 2)

A. Sasha and the Beautiful Array&#xff08;模拟&#xff09; 思路 最大值减去最小值 #include<iostream> #include<algorithm> using namespace std; const int N 110; int a[N];int main(){int t, n;cin>>t;while(t--){cin>>n;for(int i 0; i…...

构建智慧交通平台:架构设计与实现

随着城市交通的不断发展和智能化技术的迅速进步&#xff0c;智慧交通平台作为提升城市交通管理效率和水平的重要手段备受关注。本文将探讨如何设计和实现智慧交通平台的系统架构&#xff0c;以应对日益增长的城市交通需求&#xff0c;并提高交通管理的智能化水平。 ### 1. 智慧…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...