QT7_视频知识点笔记_1_ 基础知识(帮助文档),窗口(内存回收机制),信号槽(传参),Lambda表达式

本文主要是介绍QT7_视频知识点笔记_1_ 基础知识(帮助文档),窗口(内存回收机制),信号槽(传参),Lambda表达式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.QT基础

QT是一个框架,不用像C++语言自己从底层写,需要的功能可以先看是否QT库中有直接可使用的
在这里插入图片描述
帮助文档的使用:F1跳入帮助文档,
在这里插入图片描述
在这里插入图片描述
QT中常用的类:比如QPushbutton,查看帮助文档则可知道对应的函数和解决方案

2.窗口

在窗口widget中创建一个按钮pushbutton

private:QPushButton pushbutton1;		//方式1QPushButton *pushbutton2;		//方式2,常用这种//方式2是一个指针,使用时需要new初始化,

在构造函数中实现:

//方式1pushbutton1.setParent(this);pushbutton1.setText("pushbutton1");//方式2pushbutton2 = new QPushButton("pushbutton2",this);//可F1在帮助文档中查看其构造函数:QPushButton(QWidget *parent = nullptr)为指定父窗口//pushbutton2->show();    //如果没有指定父窗口,则需要show使其显示

(窗口可通过show进行显示,hide进行隐藏)

相关的内存回收机制

一般new一个对象之后需要进行释放,但是QT中如果添加了父对象则不用,父对象析构时会对其附着于上的子对象进行释放(对象)
//==》pushbutton2 不用进行另外的释放
//条件1:内存的自动回收机制适用于从QObject派生的类,窗口类(例如QWidget都是从QObject派生的,所以自动回收机制适用于所有窗口类)
//条件2:需要指定父类(先析构孩子,再析构自己)

新建一个MyButton类,继承自QPushButton,参数(QWidget *parent = nullptr)可以不进行改变。

3.信号槽

信号发出者,信号,信号接收者,处理的槽函数
信号查询:F1帮助文档,找Signals的部分,如果没有找父对象(Inherits)的部分是否有Signals
槽函数查询:与信号类似

槽函数和回调函数???:回调函数:不马上执行,当满足条件时才执行
举例:对应上面提到的窗口中按钮创建的不同方式

    //信号槽//connect(&pushbutton1,&QPushButton::clicked,this,&Study_CarManager::close);connect(pushbutton2,&QPushButton::clicked,this,&Study_CarManager::close);

自定义信号槽(信号槽传参),槽函数的参数不能多于信号的参数(多出来的参数无法获取),槽函数可以重载
.h文件:

signals:void signal1(int num1,int num2);private:void Myslot1(int num1,int num2);

.cpp文件:

//自定义带参数信号槽传参,注意也可以是其他类中发出信号,在此槽函数中进行处理//如果信号没有重载可以用这种方式connect(this,&Study_CarManager::signal1,this,&Study_CarManager::Myslot1);//如果信号出现重载,使用一下方法:void (Study_CarManager::*MySigsub)(int,int) = &Study_CarManager::signal1;connect(this,MySigsub,this,&Study_CarManager::Myslot1);emit signal1(100,500);//以上为构造函数中
void Study_CarManager::Myslot1(int num1, int num2)
{//qdebug 自定义的槽函数qDebug()<<"Myslot1:num1"<<num1<<"num2"<<num2;
}

4.Lambda表达式(隐式函数,没有函数名)

匿名的函数对象:

//“=”为拷贝外部数据的地址
全部:[]() mulable exception ->int {}     -------->  mulable值拷贝时默认为const不可改变,加之后变为可变可赋值  ;exception 为抛出异常;->int为返回值类型。如果整个函数只有一个return则不用加改返回值类型,如果有多个return的地方则需要加。[=](int num,QString str){}
//“&”为引用外部数据的地址
[&](int num,QString str){}
//如果传入具体参数:[b]则大括号内只能使用外部的该参数

如果函数内容不复杂则可不用重新定义新的函数,直接使用lambda表达式

这篇关于QT7_视频知识点笔记_1_ 基础知识(帮助文档),窗口(内存回收机制),信号槽(传参),Lambda表达式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/965182

相关文章

PostgreSQL中MVCC 机制的实现

《PostgreSQL中MVCC机制的实现》本文主要介绍了PostgreSQL中MVCC机制的实现,通过多版本数据存储、快照隔离和事务ID管理实现高并发读写,具有一定的参考价值,感兴趣的可以了解一下... 目录一 MVCC 基本原理python1.1 MVCC 核心概念1.2 与传统锁机制对比二 Postg

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

全屋WiFi 7无死角! 华硕 RP-BE58无线信号放大器体验测评

《全屋WiFi7无死角!华硕RP-BE58无线信号放大器体验测评》家里网络总是有很多死角没有网,我决定入手一台支持Mesh组网的WiFi7路由系统以彻底解决网络覆盖问题,最终选择了一款功能非常... 自2023年WiFi 7技术标准(IEEE 802.11be)正式落地以来,这项第七代无线网络技术就以超高速

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

Java Lambda表达式的使用详解

《JavaLambda表达式的使用详解》:本文主要介绍JavaLambda表达式的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言二、Lambda表达式概述1. 什么是Lambda表达式?三、Lambda表达式的语法规则1. 无参数的Lambda表

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化: