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

相关文章

C#借助Spire.XLS for .NET实现在Excel中添加文档属性

《C#借助Spire.XLSfor.NET实现在Excel中添加文档属性》在日常的数据处理和项目管理中,Excel文档扮演着举足轻重的角色,本文将深入探讨如何在C#中借助强大的第三方库Spire.... 目录为什么需要程序化添加Excel文档属性使用Spire.XLS for .NET库实现文档属性管理Sp

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

JAVA线程的周期及调度机制详解

《JAVA线程的周期及调度机制详解》Java线程的生命周期包括NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING和TERMINATED,线程调度依赖操作系统,采用抢占... 目录Java线程的生命周期线程状态转换示例代码JAVA线程调度机制优先级设置示例注意事项JAVA线程

Java利用Spire.Doc for Java实现在模板的基础上创建Word文档

《Java利用Spire.DocforJava实现在模板的基础上创建Word文档》在日常开发中,我们经常需要根据特定数据动态生成Word文档,本文将深入探讨如何利用强大的Java库Spire.Do... 目录1. Spire.Doc for Java 库介绍与安装特点与优势Maven 依赖配置2. 通过替换

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

Java中自旋锁与CAS机制的深层关系与区别

《Java中自旋锁与CAS机制的深层关系与区别》CAS算法即比较并替换,是一种实现并发编程时常用到的算法,Java并发包中的很多类都使用了CAS算法,:本文主要介绍Java中自旋锁与CAS机制深层... 目录1. 引言2. 比较并交换 (Compare-and-Swap, CAS) 核心原理2.1 CAS

C# GC回收的方法实现

《C#GC回收的方法实现》本文主要介绍了C#GC回收的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、什么是 GC? 二、GC 管理的是哪部分内存? 三、GC 什么时候触发?️ 四、GC 如何判断一个对象是“垃圾

Spring Boot 集成 mybatis核心机制

《SpringBoot集成mybatis核心机制》这篇文章给大家介绍SpringBoot集成mybatis核心机制,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值... 目录Spring Boot浅析1.依赖管理(Starter POMs)2.自动配置(AutoConfigu

C#实现插入与删除Word文档目录的完整指南

《C#实现插入与删除Word文档目录的完整指南》在日常的办公自动化或文档处理场景中,Word文档的目录扮演着至关重要的角色,本文将深入探讨如何利用强大的第三方库Spire.Docfor.NET,在C#... 目录Spire.Doc for .NET 库:Word 文档处理利器自动化生成:C# 插入 Word

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.