QT基础知识

QT基础知识

文章目录

  • QT基础知识
    • 1、QT是什么
    • 2、Qt的发展史
    • 3、为什么学习QT
    • 4、怎么学习QT
      • 1、工程的创建(环境的下载与安装请百度)
      • 2、创建的工程结构说明
      • 3、怎么看帮助文档
        • 1、类使用的相关介绍
        • 2. 查看所用部件(类)的相应成员函数(功能,参数,返回值)
        • 3、查看部件的信号
        • 4、查看部件的事件(所对应的虚函数如何编写)
    • 5. 总结


1、QT是什么

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

2、Qt的发展史

1991年 Qt最早由奇趣科技开发
1996年 进入商业领域,它也是目前流行的Linux桌面环境KDE的基础
2008年 奇趣科技被诺基亚公司收购,Qt称为诺基亚旗下的编程语言
2012年 Qt又被Digia公司收购
2014年4月 跨平台的集成开发环境Qt Creator3.1.0发布,同年5月20日配发了Qt5.3正式版,至此Qt实现了对iOS、Android、WP等各平台的全面支持。

3、为什么学习QT

  1. 更好的学习C++
  2. 后台逻辑与前台界面的协调。
  3. 跨平台(比如需要做安卓与ios开发由于Qt的跨平台一个平台写好的程序另一个平台稍微修改就可以运行起来

4、怎么学习QT

借助Qt帮助文档(很重要)

1、工程的创建(环境的下载与安装请百度)

打开Qt Creator 界面选择 New Project或者选择菜单栏 【文件】-【新建文件或项目】菜单项
在这里插入图片描述
弹出New Project对话框,选择Qt Widgets Application,
在这里插入图片描述
选择【Choose】按钮,弹出如下对话框
路径不要包含中文在这里插入图片描述
设置项目名称和路径,按照向导进行下一步,
在这里插入图片描述
选择编译套件
在这里插入图片描述
基类选择有三种:
(1)QMainWindow 是主窗口类,主窗口具有主菜单栏、工具栏、状态栏,类似于一般的应用程序主窗口(就行Qt Creater的主窗口上的有编辑栏那种)
(2)QWidget 是所有具有可视化界面类的基类,选择QWidget 创建的界面对各种界面组件度都可以支持(反正我最喜欢用这个,一片空白随便搞)
(3)QDialog 是对话框类,可建立一个基于对话框的界面。

如果不需要ui 创建界面可以不勾选 一般都是要的。
在这里插入图片描述
即可创建出一个Qt桌面程序。

2、创建的工程结构说明

在这里插入图片描述
(1)test.pro 是项目管理文件,包括一些对项目的设置项,特别是后续开发中,需要设计添加模块的问题,就在 pro 文件中添加需要的模块;同时你打开Qt项目时也是选择这个。
(2)Header文件保存所有窗口类头文件的文件分组,mywidge.h
(3)Source 文件保存C++ 源码的文件分组。main.cpp是主函数文件,也是应用程序执行的入口
(4)Froms 文件分组是保存项目的所有界面文件(.ui),双击.ui文件可以进入界面编辑界面。

.pro 文件的说明
在这里插入图片描述
main.cpp 主程序
在这里插入图片描述mywidget .h 文件
在这里插入图片描述
(1)Q_OBJECT :使用了Q_OBJECT这个宏,这是使用Qt的信号与槽(signal与slot)机制的类都必须加入的宏
(2) Ui::Widget *ui 指针,是为了使用前面声明的namespace Ui里面的Widget类定义,这个很重要,在cpp中调用ui文件中的控件时,都是以ui开头指向你需要调用的控件
(3)class myWidget : public QWidget 这就说明,myWidget类是QWidget类的一个派生类。

mywidget.cpp 文件
在这里插入图片描述
(1)#include “ui_widget.h” 这个就是Qt编译生成的与UI文件 widget.ui 对应的类定义文件
(2) myWidget::myWidget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) 构造函数头部,
意义:执行父类QWidget 的构造函数,创建一个Ui::Widget 类的对象 ui 。这个ui 就是Widget 的private 中定义的指针变量 ui。(采用C++中的成员初始化列表语句)
(3)ui->setupUi(this) 执行Ui::Widget 类的setupUi函数,这个函数实现窗口的生成与各种属性的设置、信号与槽的关联,this指针指向定义的widget类
(4)析构函数就是删除用 new 创建的ui指针

3、怎么看帮助文档

学习图形界面开发,肯定离不开帮助文档的使用,因为它不像 C 语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必要去记,用到什么就去帮助文档查看用法。

我们使用 Qt 帮助文档,主要分为这么几步:
1)类使用的相关介绍
2)查看所用部件(类)的相应成员函数(功能,参数,返回值)
3)查看部件的信号
4)查看部件的事件(所对应的虚函数如何编写)

1、类使用的相关介绍

光标移动到类名字的地方,接着按“F1”即可跳转到所对应的帮助文件:
在这里插入图片描述再按一次“F1”即可全屏显示帮助文档页面,按“Esc”即可退出帮助文档。
类的相关介绍说明:
在这里插入图片描述
所要查看的几个重要信息:
在这里插入图片描述
公有成员函数:操作部件属性的相关函数。
公有槽函数:Qt类中已经定义好的槽函数,直接可与信号相连接。
信号:软中断,如按下按钮触发 pressed() 信号等。
保护成员函数:通常事件所对应的虚函数放在此处。
事件:常用事件,如操作鼠标触发的鼠标事件。

当然,我们可以直接在“帮助”模式下的“索引”输入框里输入所需查看的类:
在这里插入图片描述

2. 查看所用部件(类)的相应成员函数(功能,参数,返回值)

查看所用部件的相应成员函数( 本身的成员函数,继承过来的成员函数 ),主要是为了查看这个成员函数如何使
用,包括函数的功能,参数,返回值。
下面以 QPushButton (普通按钮)为例:
a)选择 QPushButton 类中的“公有函数”:
在这里插入图片描述
b)相应函数的简单介绍:
在这里插入图片描述
c)点击函数名字即可查看其相应用法:
在这里插入图片描述
d)很多时候,我们需要使用到继承过来的函数,如给按钮设置内容( setText() )即是从 QAbstractButton
继承过来:
在这里插入图片描述
点击“QAbstractButton”即可跳转到 QAbstractButton 公有函数的地方:
在这里插入图片描述
点击函数名字即可查看其用法:
在这里插入图片描述
e)操作过程中,可能需要用到“后退”、“前进”进行页面来回切换:
在这里插入图片描述
f)很多事情,我们可能需要在使用到某个函数时,再查看其用法。
首先,需要先把函数的参数随便拿个数填好,然后,光标移动到函数名字的地方,再按“F1”即可跳转到此
函数的使用说明:
在这里插入图片描述

3、查看部件的信号

还是以 QPushButton 为例:
a)在 QPushButton 类中不能直接查看 Signals 的信息,需要在其基类“QAbstractButton ”中查找:
在这里插入图片描述
b)在“QAbstractButton ”,选择“Signals”:
在这里插入图片描述
c)除了本身信号,还有继承过来的信号:
在这里插入图片描述
d)点击信号名字,即可查看信号的相关说明:
在这里插入图片描述

4、查看部件的事件(所对应的虚函数如何编写)

部件常用事件主要在 QWidget 中声明,选择“Events”即可查看相关说明:
在这里插入图片描述每个事件都对应着事件函数:
在这里插入图片描述
事件函数的相关说明:
在这里插入图片描述

5. 总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,一些Qt的介绍。QT工程的创建及简单工程的生成文档的说明。怎么看QT的帮助文档。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】修炼之路-0001-Two Sum(两数之和)【python】【简单】

前言 计算机科学作为一门实践性极强的学科,代码能力的培养尤为重要。当前网络上有非常多优秀的前辈分享了LeetCode的最佳算法题解,这对于我们这些初学者来说提供了莫大的帮助,但对于我这种缺乏编程直觉的学习者而言,这往往难以消化吸收。(为什么别人就能想出这么优雅…

牛刀小试 - C++实现贪吃蛇

参考文档 借鉴了这位大佬的博客及代码,键入代码后发现有很多报错,依次解决后成功运行 c 实现贪吃蛇(含技术难点解析和完整代码) 技术点: C中_kbhit()函数与_getch()函数 Windows API 坐标结构 COORD 句柄 HANDLE 获…

有能力,但是不赚钱,往往是因为没有这三个能力!2024最适合创业的细分行业,2024最适合创业的行业

很多人非常有能力,在学校是学霸,在公司是高管,但是出来自己创业就不行了。觉得是自己的能力不够,其实不是你的能力不够,而是你欠缺下面这三种能力。如果你能掌握这三种能力,就算之前是普通人尝试创业&#…

Hotspot源码解析-第十二章-线程栈保护页

了解保护页,先从几个问题开始吧 1、为什么线程栈有栈帧了,还要有保护页? 答:在操作系统中内存可以看成是一个大数组,这就有一个问题,线程之间可能会互相踩了别人的内存空间,所以栈空间也存在这…

UI自动化测试之Jenkins配置

背景: 团队下半年的目标之一是实现自动化测试,这里要吐槽一下,之前开发的测试平台了,最初的目的是用来做接口自动化测试和性能测试,但由于各种原因,接口自动化测试那部分功能整个废弃掉了,其中和…

word中MathType公式编号

直接上效果图: 步骤如下: 安装MathTypeword中安装MathType选项卡。设置MathType选项卡添加分隔符插入公式,自动生成右编码 接下来介绍每一步。 文章目录 1. 安装MathType2. Word中安装MathType选项卡3. 配置MathType选项4. 添加分隔符5. 插…

Halcon阈值处理的几种分割方法threshold/auto_threshold/binary_threshold/dyn_threshold

Halcon阈值处理的几种分割方法 文章目录 Halcon阈值处理的几种分割方法1. 全局阈值2. 基于直方图的自动阈值分割方法3. 自动全局阈值分割方法4. 局部阈值分割方法5. var_threshold算子6 . char_threshold 算子7. dual_threshold算子 在场景中选择物体或特征是图像测量或识别的重…

在宝塔Linux中安装Docker

前言 帮助使用宝塔的用户快速上手docke的安装 📚📚 🏅我是默,一个在CSDN分享笔记的博主。📚📚 ​​​​ 🌟在这里,我要推荐给大家我的专栏《Docker》。🎯&#x1f3af…

图片上的水印怎么添加?简单易上手的3个方法

图片上的水印怎么添加?水印是一种透明的文字或图像叠加在原始图片上的技术。它能够涵盖版权信息、公司商标、作者名字或其他个人标识。很多人会通过添加水印的方法,来确保图片在分享或者是公开使用的时候,依然能够保留对自己原创内容的控制和…

【python入门】day19:学生管理系统需求分析、系统设计、主函数设计

需求分析 应具备功能—— 添加学生及成绩信息; 将学生信息保存到文件中; 修改和删除学生信息; 查询学生信息; 根据学生成绩进行排序; 统计学生的总分 系统设计 1.录入学生信息模块 2.查找 3.删除 4.修改 5.成绩排名…

Django 6 后台与便签

1. 什么是后台管理 后台管理是网页管理员利用网页的后台程序管理和更新网站上网页的内容。各网站里网页内容更新就是通过网站管理员通过后台管理更新的。 2. 创建超级用户 1. python .\manage.py createsuperuser 2. 输入账号密码等信息 Username (leave blank to use syl…

Springboot整合RocketMQ 基本消息处理

目录 1. 同步消息 2. 异步消息 3. 单向消息 4. 延迟消息 5. 批量消息 6. 顺序消息 7. Tag过滤 导入依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId></dependency> …

目标检测-One Stage-SSD

文章目录 前言一、SSD的网络结构和流程二、SSD的创新点总结 前言 根据前文目标检测-One Stage-YOLOv1可以看出YOLOv1的主要缺点是&#xff1a; 每个格子针对目标框的回归是不加限制的&#xff0c;导致目标的定位并不是很精准和Faster RCNN等先进Two Stage算法相比&#xff0c…

2020年认证杯SPSSPRO杯数学建模C题(第一阶段)抗击疫情,我们能做什么全过程文档及程序

2020年认证杯SPSSPRO杯数学建模 C题 抗击疫情&#xff0c;我们能做什么 原题再现&#xff1a; 2020 年 3 月 12 日&#xff0c;世界卫生组织&#xff08;WHO&#xff09;宣布&#xff0c;席卷全球的冠状病毒引发的病毒性肺炎&#xff08;COVID-19&#xff09;是一种大流行病。…

打工人的2.0时代,只需要一副AR眼镜!

在数字化时代&#xff0c;工业行业中的生产效率如何得到提升&#xff1f;工业AR眼镜或许是一个不错的选择。不过工业AR眼镜真的可以协助员工处理工作中所遇到的各种问题吗&#xff1f;我们以制造业、医疗行业、船舶业的不同从业者为例&#xff1a; 假如你是一名制造业从业者&am…

Linux第4步_安装VMwareTools

安装Ubuntu操作系统后&#xff0c;就可以安装VMwareTools了&#xff0c;目的是实现“电脑和虚拟机之间互相复制粘贴文件”。 1、双击桌面图标“VMware Workstation Pro”&#xff0c;然后点击下图中的“开机”&#xff0c;打开虚拟机电源。 2、双击下图中的用户名“zgq” 3、…

解决npm,pnpm,yarn等安装electron超时等问题

我在安装electron的时候&#xff0c;出现了超时等等各种问题&#xff1a; &#xff08;RequestError: connect ETIMEDOUT 20.205.243.166:443&#xff09; npm yarn&#xff1a;Request Error: connect ETIMEDOUT 20.205.243.166:443 RequestError: socket hang up npm ER…

Kafka集群详解

Kafka介绍Kafka集群介绍Kafka集群特点Kafka集群搭建在这里插入图片描述Kafka集群如何进行故障切换Kafka集群Leader的选举Kafka集群如何快速横向拓展Kafka集群搭建最佳实践Kafka集群可以使用单节点Zookeeper吗Kafka集群的消费者信息保存在那里Kafka集群的Topic的分区数的设置规则…

LeetCode(36)有效的数独 ⭐⭐

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图&#xff09; 注…

(Java基础知识综合)

进制转换&#xff1a; 其他转10 10转其他 2进制8和16 8和16转2 位运算&#xff1a; >> 除于2 <<乘以2 近似值 空心金字塔 this关键字还可以用于访问父类中的属性和方法