【快速上手QT】02-学会查看QT自带的手册QT助手

QT助手

为什么大家都说QT简单,第一点就是确实简单(bushi)。

我个人觉得最关键的点就是人家QT官方就给你准备好了文档,甚至还有专门的IDE——QtCreator,在QTCreator里面还有很多示例代码,只要你会C++的语法以及一点点对于QT的认识,你就可以依靠着手册以及百度去开发Qt程序。

什么?你不会不知道QT给你准备了文档吧?下面是我的路径,可以去参考一下。也就是先找到你安装QT的地方,找到一个写着版本号的文件夹,里面随便选一个(貌似是一样的)文件夹再点进去,找到bin目录,然后就能看到QT助手的exe可执行文件了。

E:\QT\5.15.2\msvc2019_64\bin\assistant.exe

就是这个东西。

 本来快速上手QT系列的第二篇是要写信号和槽的,但是感觉学会查询QT助手也是很重要的,因此往后推一推。

学会查询

左边有搜索栏,我们直接搜索即可,右边的主界面就会更新我们要查询的组件的内容。

现在还有一个问题,也是我初学QT时的问题,那就是查是会查了但是还不会查。

也就是说,比如我要一个按钮组件,那么我该搜索什么呢,我只知道在这边搜索但是不知道应该搜索什么。

这个时候就轮到QtDesigner登场了。

VS中我们找到.ui文件双击即可进入。

可能有熟悉我的小伙伴会说,你不是说你不喜欢用QtDesigner吗。那这个又是另外一回事了,我们这边的使用是指我们可以通过QtDesigner的图形化界面去选择我们要用的组件。

比如我们要找按钮,那么我们从左边那边选择一个按钮即可。

我们还可以拖拽到右边看看效果,货比三家,看看哪一种更适合我们。

一般按钮我们选择Push Button,选中对应组件之后我们还可以在QtDesigner的右侧去查看它拥有的属性,甚至包括它的父类的属性。

那么知道我们要用这个组件之后我们就可以去QT助手里搜索对应的用法了。

在QtDesigner里我们知道它是Push Button了,那么在搜索的时候我们却不能直接输入Push Button搜素,我们需要在它的名字前加个大写的Q然后再写上它的名字,并且把中间的空格去掉。

例如:

Push Button    ->    QPushButton

List View    ->    QListView

List Widget    -> QListWidget

那么经过上面的例子,相信各位小伙伴就知道该如何挑选组件并且通过QT助手去搜索了。

以QPushButton为例通过QT助手寻找需要的信息

搜素之后我们可以得到下面的界面。

第一次看可能看不明白,会被这密密麻麻的英文吓到,但是没关系,我们先简单的翻译一下。

目录

头几行可以忽略,目录也可以先忽略,因为不管你搜索啥组件,目录那块基本上是一样的。

但是我们第一次用QT助手去搜索组件,还是简单的看看目录吧,目录有的信息是不是就是我们可以通过QT助手查到的信息。

那么第一个性质,就是告诉我们这个组件的成员变量有什么,以及是什么类型的。

第二个公共职能,翻译的不好,实际上就是公共函数,也就是以publish修饰的成员函数,这个是我最常用的。

第三个重新实现的公共功能,应该也好理解,也就是重写父类的公共函数。

第四个公共插槽,这个比较重要,是这个组件拥有的槽函数,关于什么是槽函数,这个后续讲信号和槽函数的时候会讲解(或许就是下一篇文章)。

第五个受保护的功能,也就是以protect修饰的成员函数。

第六个重新实现的受保护函数,也就是重写父类的保护函数。

最后一个详细说明我基本上不看,因为全是英文。

我们可以通过点击目录上的超链接跳转到对应的位置去查询,这个在我们后期熟练使用QT助手之后就会用的很顺手了。

类简介

我认为的一个很重要的东西却不在目录里,就是下面这个。

它在目录的下面,目录里第一条的上面。

从这里我们可以了解到很多。

比如第一行就告诉了我们QPushButton大概是个什么(虽然是英文)。

Header告诉我们应该要包含什么头文件,我们要使用QPushButton,那么就需要包含对应的头文件。

#include <QPushButton> 

qmake中是我们需要配置的东西,如果是VS的话,我们需要按照我下面的步骤去配置。

 使用QTCreator的小伙伴就在.pro的配置文件里的对应位置加上QT += widgets即可。

除了头文件和qmake以外,我们还可以很清晰的看到这个组件继承于谁又是被谁继承。

主要还是看它继承谁。

因为有时候我们在该组件的介绍里找不到我们需要的函数,那么很有可能我们需要的函数就是在它的父类甚至是祖宗类中。

比如说在QtDesigner中我们可以看到属性中有个text,对应的就是按钮上的文本。

那么我们要修改它,按照正常猜想,设置text,那么对应的英文是不是setText,就算不是,那么函数名里肯定也沾个text,所以我们要修改text,我们就去找找QPushButton有没有对应的函数可以使用。

我们找过之后就会发现没有,根本找不到。那么此时我们要做的就是往它的父类去找,也就是QAbstractButton,我们点击最开始的简介中的链接便可以直接跳转过去。

在QAbstractButton的公共函数中我们还真就找到了

void setText(const QString &text)

其实在QtDesigner中我们就可以知道设置text属性的函数不属于QPushButton了。

所以虽然我不喜欢用QtDesigner来布局,但是使用QtDesigner可以让我们很方便地查阅对应组件的相关信息。

经验之谈

如果我们要查阅某个组件的属性是什么,那么大概率这个组件会有和属性名相同的函数会返回这个属性的值,我们可以通过那个函数去获取属性的值。

如果我们要设置某个组件的属性,那么大概率设置的函数名就会是“set”再加上属性名。

如果看了QtDesigner和QT助手还是不清楚组件该怎么使用,那么可以在QT助手中对应组件的界面的目录的最后一项——详细描述,一般是会有小例子去说明如何使用。

如果还是不行,那么好吧,我们直接百度。

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

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

相关文章

1.CVAT建项目步骤

文章目录 1. 创建project2. 创建task2.1. label 标签详解2.2.高级配置 Advanced configuration 3. 分配任务4. 注释者规范 CVAT的标注最小单位是Task&#xff0c;每个Task为一个标注任务。 1. 创建project 假设你并不熟悉cvat的标注流程&#xff0c;这里以图像2D目标检测为例进…

夜天之书 #95 GreptimeDB 社群观察报告

GreptimeDB 是格睿科技&#xff08;Greptime&#xff09;公司研发的一款开源时序数据库&#xff0c;其源代码[1]在 GitHub 平台公开发布。 https://github.com/GreptimeTeam/greptimedb 我从 2022 年开始知道有 GreptimeDB 这个项目。2023 年&#xff0c;我注意到他们的 Commun…

Hive 主要内容一览

Hive架构 用户接口&#xff1a;Client CLI&#xff08;command-line interface&#xff09;、JDBC/ODBC(jdbc访问hive) 元数据&#xff1a;Metastore 元数据包括&#xff1a;表名、表所属的数据库&#xff08;默认是default&#xff09;、表的拥有者、列/分区字段、表的类型&am…

项目02《游戏-11-开发》Unity3D

基于 项目02《游戏-10-开发》Unity3D &#xff0c; 任务&#xff1a;飞行坐骑 效果&#xff1a; 首先创建脚本&#xff0c; 绑定脚本&#xff0c; using UnityEngine; public class Dragon : MonoBehaviour{ [SerializeField] private float speed 10f; …

PCIE Order Set

1 Training Sequence Training Sequence是由Order Set(OS) 组成&#xff0c;它们主要是用于bit aligment&#xff0c;symbol aligment&#xff0c;交换物理层的参数。当data_rate 2.5GT or 5GT 它们不会被扰码(scramble)&#xff0c;当date_rate 8GT or higher 根据特殊的规…

Nginx中logs的nginx.pid文件引发的问题

Nginx中logs的nginx.pid文件引发的问题 Q1&#xff1a;nginx: [error] CreateFile() "D:\software\nginx-1.22.1/logs/nginx.pid" failed (2: The system cannot find the file specified)Q2&#xff1a;nginx: [error] invalid PID number "" in "D:…

HiveSQL——借助聚合函数与case when行转列

一、条件函数 if 条件函数 if函数是最常用到的条件函数&#xff0c;其写法是if(xn,a,b), xn代表判断条件&#xff0c;如果xn时&#xff0c;那么结果返回a ,否则返回b。 selectif(age < 25 or age is null, 25岁以下, 25岁以上) as age_cnt,count(1) as number from table…

[项目管理] 如何使用git客户端管理gitee的私有仓库

最近发现即使翻墙也无法g使用ithub了&#xff0c;需要把本地的项目搬迁到新的git托管平台。 gitee 是一个国内开源项目托管平台&#xff0c;是开源开发者、团队、个人进行 git 代码管理和协作的首选平台之一。本文将详细介绍如何向 gitee 提交私有项目。 注册 Gitee 账号并创建…

【Linux权限】

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 扩展知识&#xff1a…

Pymysql之Cursor常用API

Cursor常用API 1、cursor.execute(query, argsNone)&#xff1a;执行sql语句。 参数: query (str)&#xff1a;sql语句。 args (tuple, list or dict)&#xff1a;sql语句中如果有变量&#xff0c;或者格式化输出&#xff0c;会在这里填充数据。 Returns&#xff1a;返…

【开源】SpringBoot框架开发大病保险管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统配置维护2.2 系统参保管理2.3 大病保险管理2.4 大病登记管理2.5 保险审核管理 三、系统详细设计3.1 系统整体配置功能设计3.2 大病人员模块设计3.3 大病保险模块设计3.4 大病登记模块设计3.5 保险审核模块设计 四、…

【C#】.net core 6.0 创建默认Web应用,以及默认结构讲解,适合初学者

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握。…