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

相关文章

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

DNS查询的利器! linux的dig命令基本用法详解

《DNS查询的利器!linux的dig命令基本用法详解》dig命令可以查询各种类型DNS记录信息,下面我们将通过实际示例和dig命令常用参数来详细说明如何使用dig实用程序... dig(Domain Information Groper)是一款功能强大的 linux 命令行实用程序,通过查询名称服务器并输

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问