QT 入门

目录

QT 概述

QT5安装

QT环境介绍

编写第一个QT的程序

QT项目文件介绍


QT 概述

QT简介

QT是一个跨平台的C++图形用户界面应用程序框架。它为程序开发者提供图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正地组件编程。

QT的发展

  • 1991年最早由奇趣科技公司开发。
  • 1996年开始进入商业领域。MatthiasEttrich(马蒂亚斯·埃特里希)创建KDE 项目。2008年Qt被诺基亚收购。成为诺基亚旗下的编程语言。
  • 2012年Qt又被 Digia公司收购
  • 2014年发布跨平台的集成开发环境Qt Create 3.1.0。同年又发布了5.3正式版,支持了对目前主流平台的支持: 如iOS、Android、Windows Phone等移动平台。

支持的平台

  • windows : XP 、 Vista、Win7、win8、win2008、win10
  • Unix/Linux: Ubuntu等 Linux发行版本
  • Macintosh(苹果): Mac OS x
  • Embedded(嵌入式)-有帧缓冲(framebuffer)支持的嵌入式 Linux平台, Windows CE

​​​​​​​​​​​​​​

QT的版本

Qt按不同的版本发型,分为商业版和开源版。

  1. 商业版∶为商业软件开发,他们提供传统商业软件发行版,并且提供在商业有效期内的免费升级和技术支持服务。
  2. 开源版︰为了开发自由而设计的源码软件,它提供了和商业版本同样的功能,在GNU通用公共许可下,它是免费的。
     

QT Creator

Qt Creator是一个用于Qt开发的轻量级跨平台集成开发环境。Qt Creator可带来两大关键益处:提供首个专为支持跨平台开发而设计的集成开发环境(IDE),并确保首次接触Оt框架的开发人员能迅速上手和操作。即使不开发Qt应用程序,Qt Creator也是一个简单易用且功能强大的IDE。
 

QT的优点

  • 优良的跨平台特性,几乎支持所有的平台
  • 接口简单,容易上手,学习Qt框架对学习其他框架有参考意义。
  • 面相对象,模块化程度非常高,可重用性好,对于用户开发来说非常方便
  • 丰富的API
  • 有大量的开发文档
  • 可以进行嵌入式开发
     

QT5安装

Qt的离线下载地址,打开浏览器,输入该地址进入下载页面: http:/download.qt.io/

在页面选择点击archive目录

选择QT

选则就可以看到有各个平台下的Qt,我们现在使用Windows开发,我们就选择Windows平台下的开发工具。这里只有X86的,其实它是将X86和×64集成在一起了。直接点击下载。

断网,安装前建议先断网,不然软件会提示让你先注册,这玩意麻烦,断网了就可以跳过。

首先点击下一步,然后按图方式跳过,再下一步。

选择安装路径,一般来说最好用默认路径,而且这个路径一定要记住,在以后的开发过程中,还会用到。
 

选择安装项:在Windows下,我们选择使用Windows开发的编译工具来开发会好一些,也方便一些。点击下一步,等待安装完成。选择一个32位的版本和一个64位的版本,Sources是源码,建议勾选,有的时候,可以通过看源码,了解更多Qt 的原理。Tools中是一个 Debug调试工具。

QT环境介绍

QT主界面

示例页面,提供了,很多项目的示例,涵盖了大多数的界面开发范围。在做同类型的项目的收可以用于参考。

教程界面,是一些老外录制的一些关于qt开发的视频教程,一般都是发在YouTube 上的,这个如果想看的话,需要带把梯子。

Qt自带的编辑器,可以实现多种语言的代码识别。

比较重要的一个地方,在开发过程当中,不少时间会发在看开发文档上来。

编写第一个QT的程序

新建项目:鼠标点击文件>新建文件或项目,弹出新建项目对话框。在项目里选择application,在右边框中选择Ot Widgets Application。单击右下角,选则。

在项目介绍和位置中,输入自己的项目名称,我这里演示的是 hello,项目的位置,由自己决定。位了减少错误,尽量使用全英文的路径。点击下一步。

集成工具箱的选则,在 kit selection中选则2017,64版本,因为,我电脑现在目前没有安装vs2015。再点击下一步。

类信息,我们先选则QWidget类,这个基本是所有qt组件的基类,从最简单的开始,点击下一步。

项目管理,我们暂时用不到,直接点击完成。

如图,项目就已经建立好,qt开发环境就已经帮我把所有的文件都已经建立好了。

编辑模式

其实是一些xml代码。

设计模式:就是可视化,修改即所得的界面。

运行项目

我们可以直接点击运行,项目会自动构建,然后运行。运行效果:

很简洁的一个界面,什么也没有,就一个对话框,一个最小、大、关闭按钮。当然我们做程序肯定不仅仅只需要这样子,我们在添加一点内容,

修改窗体的标题: 在窗体属性的windowTitle修改位:早日迎娶白富美

从左侧的工具箱中找到pushbutton用鼠标点击拖动到编辑界面后松手,然后可以调整按钮的大小。单击按钮可以在属性框中可以修改按钮的属性。

找到QAbstractButton属性下的text,将其修改位:开启逆袭。修改后,可视化界面当中的按钮中的文字就已经发生变化。

接下来我们右击该按钮>转到僧。

选择单击信号clicked ()点击ok,当然还有其他的信号,

接下来程序会自动跳转到槽信号处理函数中来。

在该文件的头文件添加#include <QMessageBox>

在槽信号函数中添加

QMessageBox:information(this,"恭喜"∵"您已成功逆袭,请点击确认迎娶白富美!");

保存后重新构建运行。效果:

点击按钮后

到此,我们就完成了一个简单的QT图形界面的小项目。在这个项目当中,肯定有很多不明白的,在这里呢,我只是作为第一个项目做介绍,当中很多用东西,在之后会一一的讲解。

QT项目文件介绍

新建工程页面

  • Application(Qt): Qt项目,用C++开发。我们所学习都是基于这类项目。
  • Application(Qt Quick):一般是指开发有触摸屏的设备项目,如移动嵌入式设备
  • Application(Qt for Python):是指用创建用Python做开发语言的项目
  • lLibrary:库项目
  • Non-Qt Project:非 Qt项目,就仅仅是把Qt Create 作为一个开发工具,可以实现和VC6.0—样做命令行C/C++项目,
  • lmport Project:导入一个项目

学习的只是都是基于Application(Qt)Qt 项目的。所以我们在新建工程的时候,一般都洗这一项。
 

Qt Widgets Application : Qt窗体应用程序。创建后就自带基础图形化界面
Qt Console Application: Qt控制台应用程序,预先不带窗体,但可以通过代码创建并显示窗体。

选择项目名和路径

选择编译系统,之前的版本中没有的,这个是新版本中出现的,默认qmake 即可。

Class Information类信息选择:

Class name:类名,就是我们做最基本项目,所需要创建一个类的名字。

Base class:基类:这个我们有三个基类详细介绍。

QMainWindows:窗口应用,像诸如此类软件,就使用QMainWindows基类

QWidget:基本窗体类 ,刚刚的案例就是

只有简单的一个窗体,有最大化,最小化,加上一个按钮。

QDialog:对话框基类,此类界面叫对话框。就于用户交互的一种基本界面如我们选择项目先择的地方就是一个对话框:

myWidget:是我命名的一个类名,只需要修改这一个,下面的头文件,和源文件,还有资源文件, ui文件,都会跟着一起重命名。所以不需要手动修改。

Generate form:就是创建界面文件,在我们还没有学会怎么用代码创建窗口的时候,我们还是先勾选。

翻译文件:这个也是新版本中才出现的,我们目前用不到

开发工具包的选择:这个是在我们安装Qt的时候确定了的,其实也就是编译器。我们选择的是MSVC2017,有两个版本,一个32位的,一个是64位的。

MSVC:是微软开发的编译环境,我们使用Windows操作系统做开发,理论来说,用微软自己的编译环境,那种出现不明错误,和 bug 的机会会少一点。

我们都知道32位的操作系统和应用程序,最大寻址范围只有4G,但是我们这种学习开发,一般都是很小的程序,或者小项目,基本上是用不到4G内存以上的,所以我们直接选择32的MSVC编译环境。

项目管理:这个功能是用于在多人合作共同开发项目,还有版本的迭代和回滚所需要的一个功能,我们这学习,还用不到这功能,所以直接不用配置,直接选择none。若在公司上班,则需要用到,一般来说有三种, git,vss,svn。

项目创建完成。

mian.cpp:主函数所在的文件。应用程序的入口。

mywidget.h类头文件

class myWidget:public QDialog基于QDialog对话框类的一个子类。

Q_OBJECT:信号和槽是Qt应用开发的基础,它可是将两个毫无关系的对象连接在一起,槽和普通的C++函数是一样的,只是当它和信号连接在一起后,当发送信号的时候,槽会自动被调用只有加入了Q_OBJECT,你才能使用QT中的signal和 slot 机制。

mywidget.cpp

parent:指向父类的一个指针

QDialog(parent)构造一个QDialog对象

mywidget.ui界面文件,现在的见面几乎没有什么,再之后操作种再做—一讲解。

Qtest.pro 文件,类似于visual studio 种的 sln文件,管理本项目的一个文件,记录本项目的编译选项,参数等。如:源文件信息,配置信息,头文件、ui文件, qmake信息,跟makefile类似。

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

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

相关文章

欣赏动态之美,不如欣赏C语言实现动态内存管理之美 ! ! !

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 我会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 &#xff01;&#xff0…

【WinRAR】为什么右键没有压缩选项?

我们安装了WinRAR之后想要压缩文件&#xff0c;但是右键点击文件之后发现并没有WinRAR压缩选项&#xff0c;这应该如何设置才能出现右键带有压缩选项呢&#xff1f;方法如下&#xff1a; 首先打开WinRAR&#xff0c;在上面功能中点击选项 – 设置 然后我们在设置界面中切换到集…

数据结构:栈(Stack)的各种操作(入栈,出栈,判断栈非空,判断栈已满,附源码)

前言&#xff1a;在前面的文章中&#xff0c;我们讲解了顺序表&#xff0c;单链表&#xff0c;双向链表。而我们今天要分享的栈则是基于之前的数据结构上搭建的&#xff0c;但是相较于顺序表和链表来说&#xff0c;栈的实现就非常简单了。 目录 一.栈(Stack)的概念 二.栈的数…

html创建电子邮件链接

refer: 可以在a标签里使用&#xff1a; <a href"mailto:nameemail.com">Email</a>

大模型元年压轴盛会定档12月28日,第十届WAVE SUMMIT即将启航

回望2023年&#xff0c;大语言模型或许将是科技史上最浓墨重彩的一笔。从技术、产业到生态&#xff0c;大语言模型在突飞猛进中加速重构万物。随着理解、生成、逻辑、记忆四大能力显著提升&#xff0c;大语言模型为通用人工智能带来曙光。 AI开发者们正在用算法和代码书写一个…

ABB直流调速器维修DCS550 DCS400 DCS402.0200

德国ABB维修包括&#xff1a;直流调速器维修&#xff0c;伺服驱动器维修&#xff0c;变频器维修&#xff0c;伺服放大器维修&#xff0c;工控机维修&#xff0c;触摸屏维修 ABB直流调速器故障分析: 1、脱扣电流变压器过热引起的直流电机。 发现问题的根源在夏季常见或室内条…

聊天记录年度报告一览无余:轻松多格式导出永久保存,深度智能分析

聊天记录年度报告一览无余&#xff1a;轻松多格式导出永久保存&#xff0c;深度智能分析 1.功能简介效果展示 一个用于提取微信聊天记录的工具&#xff0c;支持将聊天记录导出成HTML、Word、CSV文档&#xff0c;以实现永久保存。此外&#xff0c;该工具还具有对聊天记录进行分…

Java 三元运算符

条件为真执行表达式1&#xff0c;条件为假执行表达式2&#xff0c;有点像if else语句&#xff0c;三目运算符的目的就是简化if else的编写形式。 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>首页</title> <…

AG16K MCU ARM Cortex M3

AGM AG16K MCU 器件是 FPGAMCU 的 SoC 单芯片产品。 FPGA 单元具有 16K LEs 的逻辑资源&#xff0c;MCU 为硬核 ARM Cortex M3。 MCU 特性  内核 ARM32 位的 Cortex M3 CPU 最高 200 Mhz 工作频率单周期乘法和硬件除法集成的嵌套式的中断控制器&#xff08;NVIC&#xff09…

Jenkins 添加node节点

安装SSH插件 Jenkins- 插件管理- 可选插件- 搜索SSH Agent 配置启用SSH Server Jenkins- 系统管理 - 全局安全配置&#xff0c; 把 SSH Server 设置为启用(默认是禁用) 新增节点 第一种方式&#xff08;SSH密钥连接&#xff09;&#xff1a; 1.Jenkins主机生成SSH密钥 [rootk…

mysql——数据库基础

目录 一.什么是数据库 二.主流的数据库 三.服务器&#xff0c;数据库&#xff0c;表关系 四.数据逻辑存储 五.MySQL架构 六.SQL语句分类 七.存储引擎 一.什么是数据库 存储数据用文件就可以了&#xff0c;为什么还要弄个数据库? 文件保存数据有以下几个缺点&#xff1…

Nacos热更新(动态获取配置)

写在前面&#xff1a;各位看到此博客的小伙伴&#xff0c;如有不对的地方请及时通过私信我或者评论此博客的方式指出&#xff0c;以免误人子弟。多谢&#xff01;如果我的博客对你有帮助&#xff0c;欢迎进行评论✏️✏️、点赞&#x1f44d;&#x1f44d;、收藏⭐️⭐️&#…

[渗透测试学习] CozyHosting - HackTheBox

文章目录 信息搜集 nmap扫描一下&#xff0c;发现存在80端口和22端口 nmap -sV -sC -p- -v --min-rate 1000 10.10.11.230直接访问80端口发现有跳转 那么我们将ip添加到hosts里面&#xff0c;成功访问 观察发现是企业网站&#xff0c;扫描一下没有子域名 那么就扫下目录&am…

【大模型】800万纯AI战士年末大集结,硬核干货与音乐美食12月28日准时开炫

文章目录 WAVE SUMMIT五载十届&#xff0c;AI开发者热血正当时酷炫前沿、星河共聚&#xff01;大模型技术生态发展正当时 回望2023年&#xff0c;大语言模型或许将是科技史上最浓墨重彩的一笔。从技术、产业到生态&#xff0c;大语言模型在突飞猛进中加速重构万物。随着理解、生…

若依源码分析

一.登录 1.1 生成验证码 基本思路 后端生成一个表达式,74?11 74?转成图片,传到前端进行展示 将结果11存入redis 前端代码实现: 请求后端地址:http://localhost/dev-api/captchaImage,通过反向代理解决前后端跨域问题,将请求路径变为:http://localhost:8080/captchaImag…

038.Python面向对象_三大特性综合案例1

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

开源贡献世纪榜评选揭晓,TDengine 成功入选并亮相 FICC 开源计算机系统大会

12 月 3-6 日&#xff0c;2023 国际测试委员会智能计算机与芯片联邦大会&#xff08;FICC&#xff09;在海南三亚举行&#xff0c;本次大会主要分为四个会议&#xff1a;芯片大会&#xff0c;智能计算机、算法与应用大会&#xff0c;开源计算机系统大会&#xff0c;测试基准与标…

注册与回调

C 再论无处不在的回调机制---注册与回调 回调函数的作用和用途&#xff0c;我就不多说了&#xff0c;之前也讨论过&#xff0c; 现在再来熟悉一下与回调函数相关的程序。 我们知道&#xff0c; 回调机制&#xff0c; 就是通过函数指针来实现的。 说白了&#xff0c; 就是注册与…

算法-05-二分查找

二分查找&#xff08;Binary Search&#xff09;算法&#xff0c;也叫折半查找算法&#xff0c;是一种针对有序数据集合的查找算法。 1-二分查找的思想 我们生活中猜数字的游戏&#xff0c;告诉你一个数据范围&#xff0c;比如0-100&#xff0c;然后你说出一个数字&#xff0c…

【lesson8】表的约束(1)

文章目录 表的约束的介绍空属性约束&#xff08;null&#xff09;和非空属性约束测试建表插入测试 默认值约束测试建表测试 建表查看默认行为建表插入测试 表的约束的介绍 真正约束字段的是数据类型&#xff0c;但是数据类型约束很单一&#xff0c;需要有一些额外的约束&#…