Qt编程技巧总结篇(2)-信号-槽-多线程(一)

文章目录

  • Qt编程技巧总结篇(2)-信号-槽-多线程(一)
    • 信号与槽
    • 实例与应用
  • 小结

Qt编程技巧总结篇(2)-信号-槽-多线程(一)

  最近学习信号与槽以及多线程,非常有技术含量,可以适当好好思考一下,这篇主要是信号与槽,其实也包括子类与父类之间的一些关系,也和子线程与主线程有关系,我们要尽量将函数以及复杂的流程放在子线程中,主线程要尽量的明晰、简洁,好了,开整~

信号与槽

信号-signals:发出去的函数,有默认(可以用哦!),当然主要还是自己去编写,(emit-发射)。
槽-slots:接收信号,承接信号发出的内容。

实例与应用

下面的例子以TCPsocket为例,这里讲个TCP状态的返回,很有趣!

子线程.h 文件中,定义信号函数

signals:
    void TCPStatusS(QAbstractSocket::SocketState);

子线程.cpp 文件中,发射信号函数

void coWorker::STLConnected(QString IP, int port)
{
    STLsocket->connectToHost(IP,qint16(port));
    emit TCPStatusS(STLsocket->state());
}

主线程.h 文件中,定义槽函数

public Q_SLOTS:
    void onconnected(QAbstractSocket::SocketState socketStatue);

主线程.cpp 文件中,子类实例为worker

  • 连接槽函数与信号函数
    // 通过发信号令不同类之间通信
    connect(worker,&coWorker::TCPStatusS,this,&MainWindow::onconnected);
  • 并解释槽函数
void MainWindow::onconnected(QAbstractSocket::SocketState socketStatue)
{
    switch (socketStatue)
    {
    case QAbstractSocket::ConnectingState:
    {
        ui->label_Text->setText("Connected successfully!");
        break;
    }
    case QAbstractSocket::UnconnectedState:
    {
        ui->label_Text->setText("Disconnected already!");
    }
    }
}

小结

  抓紧时间学习,好多概念非常的抽象,必须自己静下来想一想、敲一敲才理解得更深刻,加油。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/763061.html

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

相关文章

Evented PLEG: iSulad 稳态 CPU 利用率降低30%的关键特性

背景 容器技术在不断发展的过程中,已被广泛应用于多种场景。OpenAtom openEuler(简称"openEuler") 社区容器引擎项目 iSulad[1]面向 CT、IT 领域的不同需求而生,它具有轻量级、高性能的特点,可以在资源受限…

vue3引入本地静态资源图片

一、单张图片引入 import imgXX from /assets/images/xx.png二、多张图片引入 说明:import.meta.url 是一个 ESM 的原生功能,会暴露当前模块的 URL。将它与原生的 URL 构造器 组合使用 注意:填写自己项目图片存放的路径 /** vite的特殊性…

技术干货丨基于MotionView的虚拟路面疲劳分析

虚拟路面VPG(Virtual Proving Ground)现在正被广泛应用于汽车的疲劳耐久分析中,相较于传统的道路载荷谱数据采集的疲劳计算方法,虚拟路面VPG技术可以极大地节省载荷谱的获取时间并降低测试成本。 本文将给大家介绍汽车悬挂系统中的…

一文讲解Docker入门到精通

一、引入 1、什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,它允许在一台物理机上创建多个独立的虚拟环境,这些环境被称为虚拟机(VM)。每个虚拟机都可以…

无锁编程——从CPU缓存一致性讲到内存模型(1)

一.前言 1.什么是有锁编程,什么是无锁编程? 在编程中,特别是在并发编程的上下文中,“无锁”和“有锁”是描述线程同步和资源访问控制的两种不同策略。有锁(Locked): 有锁编程是指使用锁(例如互…

基于JSP技术的校园餐厅管理系统

开头语: 你好呀,我是计算机学长猫哥!如果您对校园餐厅管理系统感兴趣或有相关需求,欢迎随时联系我。我的联系方式在文末,期待与您交流! 开发语言:Java 数据库:MySQL 技术&#x…

MySQL 8 命令安装卸载教程

一、下载MySQL8 下载连接 MySQL :: Download MySQL Community Server 我下载的是当前最新版8.4 二、安装 1.解压 解压到需要安装的位置,例如我的位置: 2.创建配置文件 新建文本文档,复制下面配置文件(注意修改路经)…

Cesium大屏-vue3注册全局组件

1.需求 说明:产品经理要求开发人员在地图大屏上面随意放置组件,并且需要通过数据库更改其组件大小,位置等;适用于大屏组件中场站视角、任意位置标题等。 2.实现 2.1GlobalComponents.vue 说明:containerList可以通…

javascript 常见设计模式

什么是设计模式? 在软件开发中,设计模式是解决特定问题的经验总结和可复用的解决方案。设计模式可以提高代码的复用性、可维护性和可读性,是提高开发效率的重要手段。 单例模式 1.概念 单例模式 (Singleton Pattern)&#xf…

ssm校园二手交易平台小程序

设计技术: 开发语言:Java数据库:MySQL技术:SpringMybatisSpringMvc微信小程序 工具:IDEA、Maven、Navicat 主要功能: (a) 管理员;管理员进入系统主要功能包括首页,个人中心&…

RedHat9 | 内部YUM本地源服务器搭建

服务器参数 标识公司内部YUM服务器主机名yum-server网络信息192.168.37.1/24网络属性静态地址主要操作用户root 一、基础环境信息配置 修改主机名 [rootyum-server ~]# hostnamectl hostname yum-server添加网络信息 [rootyum-server ~]# nmcli connection modify ens160 …

红黑树模拟

1.红黑树概念 红黑树,是一种二叉搜索树,但每个节点上增加了一个存储位表示结点的颜色,可以是RED或BLACK。通过任何一条根到叶子节点的途径上各个节点的着色方式的限制,红黑树确保没有一条路径会超过其他路径的二倍,因…

MySQL InnoDB Cluster 高可用集群部署

MySQL InnoDB Cluster 简介 官方文档:https://dev.mysql.com/doc/refman/8.4/en/mysql-innodb-cluster-introduction.html 本章介绍 MySQL InnoDB Cluster,它结合了 MySQL 技术,使您能够部署和管理完整的 MySQL 集成高可用性解决方案。 说…

SOC模块LoRa-STM32WLE5有哪些值得关注

SoC 是片上系统的缩写,是一种集成芯片,集成了计算机或其他电子系统的所有或大部分组件。这些组件通常包括中央处理器 (CPU)、内存、输入/输出接口和辅助存储接口。包含数字、模拟、混合信号和通常的 RF 信号处理功能,具体取决于应用。片上系统…

优质快刊合集!内含TOP刊、CCF推荐期刊!编辑友好,极速发表!

【SciencePub学术】本期给大家推荐的是几本计算机快刊合集,内含优质TOP刊,现在版面已经所剩不多。且均属于我处目前进展很顺的期刊,大家可以放心投稿! 计算机工程类 SCI(TOP刊 / CCF-C类) 【期刊简介】IF…

高斯过程的数学理解

目录 一、说明 二、初步:多元高斯分布 三、 线性回归模型与维度的诅咒 四、高斯过程的数学背景 五、高斯过程的应用:高斯过程回归 5.1 如何拟合和推理高斯过程模型 5.2 示例:一维数据的高斯过程模型 5.3 示例:多维数据的高斯过程模…

滑动窗口算法系列|基础概念|例题讲解

大家好,我是LvZi,今天带来滑动窗口算法系列|基础概念|例题讲解 一.滑动窗口问题基础概念 滑动窗口本质上是同向双指针问题,脱胎于双指针.使用两个指针l, r维护一定长度的数组区间,在r 指针遍历的过程中,执行进窗口,判断,更新结果,出窗口 等操作,当r指针遍历完毕,就能得到最后…

Study--Oracle-05-Oracler体系结构

一、oracle 体系概览 Oracle数据库的体系结构通常包括以下主要组件: 1、实例(Instance):运行数据库的软件环境,包括内存结构(SGA)和进程结构(Background Processes and User Proces…

如何一键修复0x0000011b错误,修复0x0000011b终极指南

在使用Windows操作系统和网络打印机的过程中,很多用户可能遇到了一个常见的错误代码“0x0000011b”。这个问题通常发生在尝试连接或使用网络打印机时,尤其是在安装了特定Windows安全更新后。本文将详细介绍如何快速一键修复此问题,确保您的打…

利用MMDetection将单阶段检测器作为Faster R-CNN的RPN

将单阶段检测器作为RPN 一、在 Faster R-CNN 中使用 FCOSHead 作为 RPNHead与原始配置的对比结果Neck (FPN)RPN HeadROI Head学习率 使用单阶段检测器作为RPN的优势1. 速度提升2. 准确性3. 简化架构4. 灵活性 二、评估候选区域三、用预先训练的 FCOS 训练定制的 Faster R-CNN 本…