qt基本窗口类(QWidget,QDialog,QMainWindow)

2024-06-22 21:04

本文主要是介绍qt基本窗口类(QWidget,QDialog,QMainWindow),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.三个基本窗口类

1.1QWidget

所有窗口的基类

可以内嵌到其他窗口的内部,无边框

也可以作为独立窗口显示,有边框

1.2QDialog

继承于QWidget

对话框窗口类

不可以内嵌到其他窗口

有模态和非模态两种显示方式

1.3QMainWind

继承于QWidget

主窗口类

不可以内嵌

可以包含菜单栏,工具状态栏

2.qt中的坐标体系

3.qt内存回收机制

对象树

OBject,当一个对象创建时指定了其父对象的时候,该对象会被加载到其父对象的child树中,当其父对象析构时候,其子对象也会析构。qt保证所有对象只被析构一次

QWidget继承了Object,自然也就有这种内存回收机制

4.信号槽的概念

说白了就是信号与回调函数,信号就是触发的事件,槽就是对应事件的处理函数

信号与槽本身就是两个函数,是独立的,需要进行关联

通过connect函数

/*
sender是发送的对象指针,
signal是对象所属类的信号函数地址,
recevier是信号的接收对象的指针
slot是接收对象所属类的槽函数地址
*/
connect(*sender, &Sender::signal, *receiver, &Receiver::slot);

这种方法一般是qt5的,如果存在函数重载就会比较麻烦,因为信号和槽函数都是用的函数指针

Qt4方法

connect(*sender, SIGNAL(signal(arg1, arg2, ...)), *receiver, SLOT(slot(arg1, arg2, ...)));

这种方法可以给函数传递对应的参数,比较方便

5.自定义的信号和槽函数

这些函数一般都是类的成员函数,匿名函数,或者静态函数,全局函数

因为是自定义的,qt提供的类并不知道什么时候调用它,所以要先将标准信号函数与自定义的信号函数关联起来,当标准的信号函数触发就会调用自定义的信号函数,自定义的信号函数又和自定义的槽函数关联着,就会触发自定义的槽函数。

这篇关于qt基本窗口类(QWidget,QDialog,QMainWindow)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和

Qt 中 isHidden 和 isVisible 的区别与使用小结

《Qt中isHidden和isVisible的区别与使用小结》Qt中的isHidden()和isVisible()方法都用于查询组件显示或隐藏状态,然而,它们有很大的区别,了解它们对于正确操... 目录1. 基础概念2. 区别清见3. 实际案例4. 注意事项5. 总结1. 基础概念Qt 中的 isHidd

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二

Qt把文件夹从A移动到B的实现示例

《Qt把文件夹从A移动到B的实现示例》本文主要介绍了Qt把文件夹从A移动到B的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录如何移动一个文件? 如何移动文件夹(包含里面的全部内容):如何删除文件夹:QT 文件复制,移动(

Qt实现发送HTTP请求的示例详解

《Qt实现发送HTTP请求的示例详解》这篇文章主要为大家详细介绍了如何通过Qt实现发送HTTP请求,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、添加network模块2、包含改头文件3、创建网络访问管理器4、创建接口5、创建网络请求对象6、创建一个回复对

Python中多线程和多进程的基本用法详解

《Python中多线程和多进程的基本用法详解》这篇文章介绍了Python中多线程和多进程的相关知识,包括并发编程的优势,多线程和多进程的概念、适用场景、示例代码,线程池和进程池的使用,以及如何选择合适... 目录引言一、并发编程的主要优势二、python的多线程(Threading)1. 什么是多线程?2.

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav