QT 入门

news2024/11/16 20:23:28

目录

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类似。

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

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

相关文章

JVM虚拟机:如何查看JVM的XX参数?

本文重点 在学习XX参数之前,我们先来学习一下,如何查看当前程序所配置的xx参数。 查询JVM的xx参数的命令 jps -l (查询正在运行的java进程) jinfo -flag 参数名 进程号 (查看该进程程序的参数的值) jinfo -flags 进程号 (查看该进程程序中所有参数的值) 举例 查看所有的…

华为交换机——配置策略路由(基于IP地址)示例

一、组网需求&#xff1a; 汇聚层Switch做三层转发设备&#xff0c;接入层设备LSW做用户网关&#xff0c;接入层LSW和汇聚层Switch之间路由可达。汇聚层Switch通过两条链路连接到两个核心路由器上&#xff0c;一条是高速链路&#xff0c;网关为10.1.20.1/24&#xff1b;另外一…

pytorch:to()、device()、cuda()将Tensor或模型移动到指定的设备上

将Tensor或模型移动到指定的设备上&#xff1a;tensor.to(‘cuda:0’) 最开始读取数据时的tensor变量copy一份到device所指定的GPU上去&#xff0c;之后的运算都在GPU上进行在做高维特征运算的时候&#xff0c;采用GPU无疑是比用CPU效率更高&#xff0c;如果两个数据中一个加了…

Vue3安装使用Mock.js--解决跨域

首先使用axios发送请求到模拟服务器上&#xff0c;再将mock.js模拟服务器数据返回给客户端。打包工具使用的是vite。 1.安装 npm i axios -S npm i mockjs --save-dev npm i vite-plugin-mock --save-dev 2.在vite.config.js文件中配置vite-plugin-mock等消息 import { viteMo…

数据库——存储过程及游标

智能2112杨阳 一、目的与要求&#xff1a; 1、掌握存储过程的工作原理、定义及操作方法 2、掌握函数的工作原理、定义及操作方法 3、掌握游标的工作原理、定义及操作方法 二、内容&#xff1a; 1. 创建存储过程&#xff0c;用来自动统计给定订单号的订单总金额 源码&…

.NET 反射优化的经验分享

比如针对 GetCustomAttributes 通过反射获取属性的优化,以下例子 // dotnet run -c Release -f net7.0 --filter "*" --runtimes net7.0 net8.0public class Tests{public object[] GetCustomAttributes() => typeof(C).GetCustomAttributes(typeof(MyAttribute…

Windows server 2016 如何禁止系统自动更新

1.打开“运行”&#xff0c;输入cmd&#xff0c;点击“确定”。 2.输入sconfig&#xff0c;然后按回车键。 3.输入5&#xff0c;然后按回车键。 4.示例需要设置为手动更新&#xff0c;即输入M&#xff0c;然后按回车键。 5.出现提示信息&#xff0c;点击“确定”即可。

第四十一篇:移动端调试工具

1.下载工具 npm install vconsole 2.在main.js里全局引用 > import Vconsole from vconsole > new Vconsole()

Python面向对象三大特征(python系列20)

1.封装 定义&#xff1a; 数据角度&#xff1a;将基本数据类型复合成一个自定义类型。 作用&#xff1a;可读性更高&#xff0c;将数据与对数据的操作相关联。 行为角度&#xff1a;对类外提供必要的功能&#xff0c;隐藏实现的细节 作用&#xff1a;让调用者不必了解实现代码&…

ABAP 明细alv跳转到汇总alv一般模板

需求描述&#xff1a;做开发的同时&#xff0c;经常会有遇到&#xff0c;根据明细表进行逻辑汇总&#xff0c;在两个屏幕进行跳转&#xff0c;然后按钮还要做功能的情况&#xff0c;我这边记录一下最简单点模板&#xff0c;给新手可以直接复制使用的。 一、源代码 TYPE-POOLS…

基于JAVAEE技术校园车辆管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本校园车辆管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

Mozilla 推出 Solo:借助 AI 帮助零编程用户创建网站

Mozilla 近日推出名为 Solo 的全新项目&#xff0c;面向没有任何编程经验的用户&#xff0c;通过融入 AI 能力&#xff0c;所创建的网站可以媲美专业开发者的开发效果。 Mozilla 表示该项目主要针对中小型企业、个体户&#xff0c;在官方演示中&#xff0c;用户只需要输入文本、…

Linux完成mysql数据库的备份与恢复

背景&#xff1a; 在进行数据报表的测试过程中&#xff0c;为了让我们的测试数据更加真实&#xff0c;因此我们需要同步生产数据到测试环境。方式有很多种&#xff0c;我这里介绍的是通过Linux完成数据同步。 备份数据&#xff1a; 执行命令&#xff1a;mysqldump -uxxx -pxxx…

HAAS 哈斯机床 读写刀补数据

哈斯机床不管是串口机床还是网口机床 都提供了Q命令 可以使用Q命令 进行刀具补偿的读取和写入 最多支持200把刀的 读取和写入

外贸SOHO建站怎么做?海洋建站方法策略?

外贸SOHO建站多少钱&#xff1f;外贸自助建站系统有哪些&#xff1f; 随着全球化的加速发展&#xff0c;外贸SOHO已经成为越来越多创业者的选择。然而&#xff0c;要想在竞争激烈的外贸市场中脱颖而出&#xff0c;一个专业的外贸网站是必不可少的。接下来海洋建站将探讨外贸SO…

jsp文件引用的css修改后刷新不生效问题

问题 在对 JavaWeb 项目修改的过程中&#xff0c;发现修改了 jsp 文件引入的 css 文件的代码后页面的样式没有更新的问题。 原因 导致这个问题的原因可能是因为浏览器缓存的问题。 解决方法 下面介绍两种解决方法&#xff0c;供大家参考&#xff1a; 1、给 link 标签的 c…

图文并茂讲VLAN,一遍就能理解

图文并茂讲VLAN&#xff0c;一遍就能理解 弱电行业圈2019-03-19 10:12 vlan的应用在网络项目中是非常广泛的&#xff0c;基本上大部分的项目都需要划分vlan&#xff0c;前几天我们讲到vlan的配置&#xff0c;有朋友就提到有没有更基础一些的内容&#xff0c;今天我们就从基础…

【LeetCode刷题】--172.阶乘后的零

172.阶乘后的零 方法&#xff1a; class Solution {public int trailingZeroes(int n) {int ans 0;for(int i 5;i<n;i5){for(int x i; x % 50; x/5){ans;}}return ans;} }进一步优化&#xff1a; class Solution {public int trailingZeroes(int n) {int ans 0;while (n…

今日开幕!飞凌嵌入式受邀参加2023年瑞萨技术交流日全国巡回展

来源&#xff1a;飞凌嵌入式官网 2023年瑞萨技术交流日全国巡回展&#xff08;广州站&#xff09;今日开幕&#xff0c;飞凌嵌入式再次受邀参加&#xff0c;并与来自新能源、自动化、工业物联网以及人工智能等领域的精英们共同探讨前沿技术。 在今日的巡展现场&#xff0c;飞凌…

绝地求生:PGC2023胜者组D2下半场:17天霸成功晋级,TL、NH跌入最后机会组

第四场 第一名&#xff1a;LGC 第二名&#xff1a;T5 第三名&#xff1a;FaZe 17仅剩两人&#xff0c;T5踩住高点&#xff0c;sujiu前顶时被T5架枪位击倒&#xff0c;小鬼的盾牌没能挡住对方的雷遗憾第五出局。然而T5自己也进圈不易&#xff0c;仅剩两人。 LG独狼卡住T5却忽…