【快速上手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.mfbz.cn/a/377452.html

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

相关文章

小白水平理解面试经典题目LeetCode 71. Simplify Path【Stack类】

71. 简化路径 小白渣翻译 给定一个字符串 path &#xff0c;它是 Unix 风格文件系统中文件或目录的绝对路径&#xff08;以斜杠 ‘/’ 开头&#xff09;&#xff0c;将其转换为简化的规范路径。 在 Unix 风格的文件系统中&#xff0c;句点 ‘.’ 指的是当前目录&#xff0c;…

WordPress如何自建txt文本经典语录并随机显示一句话经典语录?

前面跟大家分享的『WordPress集成一言&#xff08;Hitokoto&#xff09;API经典语句功能』一文中就提供有自创API&#xff0c;其中懿古今顶部左上角显示的经典语录用的就是自建一个txt文本文件&#xff0c;然后再在前端网页指定位置随机显示语录。具体操作方法如下&#xff1a;…

Oracle篇—logminer日志挖掘恢复误操作数据

☘️博主介绍☘️&#xff1a; ✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux&#xff0c;也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&#xff0c;并且也会默默的点赞收藏加关注❣…

微软.NET6开发的C#特性——类、结构体和联合体

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;看到不少初学者在学习编程语言的过程中如此的痛苦&#xff0c;我决定做点什么&#xff0c;下面我就重点讲讲微软.NET6开发人员需要知道的C#特性。 C#经历了多年发展&#xff0c; 进行了多次重大创新&#xf…

C# 委托(delegate)本质理解

目录 代码如下&#xff0c;很简单 运行的结果 反编译程序查看 关注两点&#xff1a; 什么是委托 委托的三个步骤 委托的意义 代码如下&#xff0c;很简单 namespace Delegate { class Program { delegate void SayHi(); void SayHi_1() …

FL Studio水果软件21的版本更新具体有哪些内容?

FL Studio 21相比之前的版本&#xff0c;包含多个新的更新和改进&#xff0c;具体内容如下&#xff1a; 用户界面&#xff1a;FL Studio 21采用了全新的FLAT UI设计风格&#xff0c;使得界面更加简洁美观。同时&#xff0c;用户现在可以根据自己的喜好更换界面风格。另外&…

CSS Transition:为网页元素增添优雅过渡效果

随着互联网的发展&#xff0c;网页的视觉效果和用户体验变得尤为重要。CSS Transition作为一种能够让网页元素在状态改变时呈现平滑过渡效果的工具&#xff0c;受到了广大前端开发者的青睐。本文将详细介绍CSS Transition的基本概念、使用方法以及常见应用&#xff0c;帮助读者…

问题:0xc8前面加(byte) #人工智能#学习方法的原因是因为0xc8大于??????????? 。 #微信#其他#微信

问题&#xff1a;0xc8前面加&#xff08;byte&#xff09;的原因是因为0xc8大于??????????? 。 参考答案如图所示

Arm发布新的人工智能Cortex-M处理器

Arm发布了一款新的Cortex-M处理器&#xff0c;旨在为资源受限的物联网&#xff08;IoT&#xff09;设备提供先进的人工智能功能。这款新的Cortex-M52声称是最小的、面积和成本效率最高的处理器&#xff0c;采用了Arm Helium技术&#xff0c;使开发者能够在单一工具链上使用简化…

编程实例分享,手表养护维修软件钟表维修开单管理系统教程

编程实例分享&#xff0c;手表养护维修软件钟表维修开单管理系统教程 一、前言 以下教程以 佳易王钟表维护维修管理系统软件V16.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 左侧为导航栏&#xff0c; 1、系统设置&#xff1a;可以设置打…

【Git版本控制 04】标签管理

目录 一、创建标签 二、查看标签 三、推送标签 四、删除标签 一、创建标签 标签tag&#xff0c;是对某次 commit 的⼀个标识&#xff0c;相当于起了⼀个别名。 相较于难以记住的 commit id &#xff0c; tag 很好的解决这个问题&#xff0c;因为 tag ⼀定要给⼀个让⼈容易…

如果把vue组件动态添加到body上?

tools.js: import Vue from vue/*** param Component 组件实例的选项对象* param props 组件实例中的prop*/ export function create(Component, props) {const comp new (Vue.extend(Component))({ propsData: props }).$mount()document.body.appendChild(comp.$el)comp.re…

flutter监听app进入前后台状态的实现

在开发app的过程中&#xff0c;我们经常需要根据app的前后台的状态&#xff0c;做一些事情&#xff0c;那么我们在flutter中是如何实现这一监听的&#xff1f; flutter给我们提供了WidgetsBindingObserver来进行一些状态的判断&#xff0c;但是判断前后台的状态只是该API种其中…

c++多态(3) -- 虚析构函数

代码: enum class _ANIMALS_TYPE {CAT,DOG,ANIMAL_COUNT };class Animal { public:Animal(_ANIMALS_TYPE type, int age,const char* name);~Animal();virtual void eat()const 0; private:_ANIMALS_TYPE type; // 动物类型int age; // 动物年龄char* na…

【蓝桥杯冲冲冲】Invasion of the Milkweed G

【蓝桥杯冲冲冲】Invasion of the Milkweed G 蓝桥杯备赛 | 洛谷做题打卡day30 文章目录 蓝桥杯备赛 | 洛谷做题打卡day30[USACO09OCT] Invasion of the Milkweed G题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 题解代码我的一些话 [USACO09OCT] Invasion of the Mi…

AD域国产替代方案,助力某金融企业麒麟信创电脑实现“真替真用”

近期收到不少企业客户反馈采购的信创PC电脑用不起来&#xff0c;影响信创改造的进度。例如&#xff0c;某金融企业积极响应国产化信创替代战略&#xff0c;购置了一批麒麟操作系统电脑。分发使用中发现了如下问题&#xff1a; • 当前麒麟操作系统电脑无法做到统一身份认证&…

学生管理系统(javaSE第一阶段项目)

JavaSE第一阶段项目_学生管理系统 1.项目介绍 此项目是JavaSE第一阶段的项目,主要完成学生对象在数组中的增删改查,大家可以在此项目中发挥自己的想象力做完善,添加其他功能等操作,但是重点仍然是咱们前9个模块的知识点2.项目展示 2.1.添加功能 2.2.查看功能 2.3.修改功能 2…

DevOps落地笔记-21|业务价值:软件发布的最终目的

上一课时介绍如何度量软件的内部质量和外部质量。在外部质量中&#xff0c;我们提到用户满意度是衡量软件外部质量的关键因素。“敏捷宣言”的第一条原则规定&#xff1a;“我们最重要的目标&#xff0c;是通过持续不断的及早交付有价值的软件使用户满意”。从这一点也可以看出…

蓝桥杯Web应用开发-CSS3 新特性【练习二:获得焦点验证】

页面上有一个姓名输入框和一个密码输入框&#xff0c;当聚焦输入框时&#xff0c;输入框的背景颜色会发生改变&#xff0c; 新建一个 index3.html 文件&#xff0c;在其中写入以下内容。 <!DOCTYPE html> <html lang"en"><head><meta charset&…

mac电脑安装cocoapods出错,以及安装最新版本ruby方法

macbook安装cocoapods时碰到一个报错&#xff1a;大概率是ruby的版本太低导致的 sudo gem install cocoapods ERROR: Error installing cocoapods: ERROR: Failed to build gem native extension. ... Could not create Makefile due to some reason, probably lack of neces…