Qt界面之间信息传递(自身项目经验,一文必懂)

2023-11-13

        Qt最常用的就是信号与槽这一结构,对于这一结构,我们可以看下Qt4和Qt5以上版本的差别

connect(ui->QCP_fabric_edit,SIGNAL(mousePress(QMouseEvent*)),this,
SLOT(myMousePressEvent(QMouseEvent*)));    //Qt4写法
   connect(ui>QCP_fabric_edit,&QCustomPlot::mousePress,this,
&database_control::MyMousePressEvent);

映入眼帘的绝对是SIGNAL这一写法,但是事实上我们可以从鼠标按压这一事件可以看出,Qt5更加突出的是这个信号和槽的所属类,这也是我们学习信号和槽这一概念的关键。

言归正传,接下来讨论界面间信息传递。其主要包括两种类型,一种是当前页面向子页面传递数据;另一种则是子页面向当前页面传递数据。

  • 子页面向当前页面传递数据

为什么先说子页面向当前页面传递数据,因为简单。在connect过程中,我们需要考虑的是信号和槽之间的归属。

fatheritem
    childitem = new childitem(this);

在父页面我们创建了子页面的句柄,使用这个我们既可以从子页面接收到信号,并传递到父界面。

    dialog_Accuracy * dialog_A = new dialog_Accuracy(this);
    connect(ui->btn_accuracy,&QAction::triggered,this,[=](){
        dialog_A->show();
    });
    connect(dialog_A,&dialog_Accuracy::sendAccuracy,this,[=](int a){
        accuracy = a;
        qDebug() << "accuracy" << accuracy;
        dialog_A->done(100);
    });

如这一段代码就是从子页面接收一个sendAccuracy的型号并放给父页面进行信息传递。

  • 当前页面向子页面传递数据

这种方式相对上一种,有点绕,但是理解了也就没什么秘密了。

子页面没有父页面的句柄,那么我们向上面那样写显然是不行的。所以我们仍要从父页面着手。当我们发信号时,仍要从父界面发,用上面那段代码我们可以这样来

    dialog_Accuracy * dialog_A = new dialog_Accuracy(this);
    connect(ui->btn_accuracy,&QAction::triggered,this,[=](){
        dialog_A->show();
    });
    connect(,&father::father_signal,dialog_A,&child::child_slot);

我们从主页面定义一个father_signal信号发出,并在后面接一个接收槽,但是槽的定义我们在子界面定义,这样就将数据顺利的传输到子界面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt界面之间信息传递(自身项目经验,一文必懂) 的相关文章

随机推荐

  • 合并两个链表

    输入两个单调递增的链表 输出两个链表合成后的链表 当然我们需要合成后的链表满足单调不减规则 public class Solution public ListNode Merge ListNode list1 ListNode list2
  • IDEA创建Javaweb项目之方法3之使用JavaEnterprise

    目录 1 file project enterprise 2 结构如下 3 配置Tomcat服务器 4 重要部署不要忘记 ps idea中别配置错Tomcat 1 file project enterprise 无脑默认即可 2 结构如下
  • Linux命令_netstat & 接口、端口、路由统计

    简介 netstat用于打印网络连接 路由表 接口统计信息 伪装连接和多播成员关系 netstat打印关于Linux网络子系统的信息 打印信息的类型由第一个参数控制 语法 netstat veenNcCF
  • maven打成jar包

    还是实践出真知啊
  • 算法题目练习(C/c++/java)

    记录做过的经典题型 以便于以后查看 目录 二分法 1 二分查找一个数 2 二分查找左边界 3 二分查找右边界 计算最大公约数 辗转相除 递归辗转 链表的逆置 前缀和求法 一维前缀和 二维前缀和 包子凑数 扩展欧几里得算法 例子 青蛙的约会
  • 【全民编程】《软件编程-讲课视频》【零基础入门到实战应用】

    第一阶段 零基础编程到入门 视频讲解 第二阶段 工作实操指导
  • EC变色玻璃介绍

    EC Electrochromic 全称电致变色 最外层的两层EC器件基底将所有材料包裹起来 EC器件基底大部分为玻璃 变色玻璃组成 EC变色的本质是在电压作用下材料的光学性质 透过率 反射率 吸收率等 发生稳定 可逆的变化 在EC薄膜两边
  • VMM基础

    复杂度3 5 机密度3 5 最后更新2021 04 20 VMM Virtual Memory Management是所有操作系统都要解决的问题 也是非常硬件相关的问题 必须从硬件CPU的地址管理开始谈起 我们先了解一些术语 Page 内存
  • Sklearn——5折交叉验证评估模型性能

    学习资料 sklearn 中文文档 http www scikitlearn com cn pandas cookbook https github com iamseancheney pythonbooks blob master Pan
  • NLP-分词器:SentencePiece【参考Chinese-LLaMA-Alpaca在通用中文语料上训练的20K中文词表并与原版LLaMA模型的32K词表进行合并的代码】

    背景 随着ChatGPT迅速出圈 最近几个月开源的大模型也是遍地开花 目前 开源的大语言模型主要有三大类 ChatGLM衍生的大模型 wenda ChatSQL等 LLaMA衍生的大模型 Alpaca Vicuna BELLE Phoeni
  • 业内首发

    区块链数据服务 Blockchain Data Service BDS 是京东云区块链产品部发推出的 其将区块链的链式 非结构化数据通过技术手段进行结构化存储 实时同步到高性能数据仓库中 用户可以通过区块链数据查询工具 实现简单的条件查询和
  • springboot+rabbitmq两小时入门(七):生产者发送失败和消费者消费失败处理

    消息队列经常会发送失败和消费失败 这两种问题在日常工作中是不可忽视的 消息发送失败情况 1 网络抖动导致生产者和mq之间的连接中断 导致消息都没发 答 rabbitmq有自动重连机制 叫retry 具体到rabbitTemplate中叫re
  • LVS——DR模式下的健康检查(ldirectord)

    对后端服务器健康检查 如果一个后端服务器挂掉将这个服务器踢出集群 让用户无感知 否则会出现访问时好时坏的情况 当宕机的服务器恢复正常时自动将他加回集群 当服务器集群宕机的时候返回一个统一的错误页面 这个页面来自于调度器 注意 ldirect
  • linux 下搭建BugFree

    遇到问题 公司项目组开发小组需要搭建缺陷管理系统 方便开发小组提交Bug 介绍 BugFree基于PHP和MySQL开发 是免费且开放源代码的缺陷管理系统 服务器端在Linux和Windows平台上都可以运行 客户端无需安装任何软件 通过I
  • [运维] 在debian系统下安装KODExplorer(可道云)

    系统环境说明 系统 Debian GNU Linux 10 buster 平台 amd64 参考文献 KODExplorer 系统环境软件安装 KODExplorer 运行环境软件安装 sudo apt install php php cu
  • python线程池 ThreadPoolExecutor 使用详解

    从 Python3 2 开始 标准库为我们提供了 concurrent futures 模块 它提供了 ThreadPoolExecutor 和 ProcessPoolExecutor两个类 实现了对 threading 和 multipr
  • [ACTF2020]exec

    ACTF2020 exec 点开进入题目 可以看见一个ping 首先第一反应是输入自己电脑的地址 可以得到 然后凭感觉进行 输入127 0 0 1 whoami 因为linux的默认用户组是www data 因此这是linux 继续下去 遍
  • Flash地址空间的数据读取——STM32

    目录 一 STM32 的内部 FLASH 简介 二 工程验证 三 总结 参考链接 一 STM32 的内部 FLASH 简介 在 STM32 芯片内部有一个 FLASH 存储器 它主要用于存储代码 我们在电脑上编写好应用程序后 使用下载器把编
  • Linux学习笔记——Linux实用操作(二)

    04 Linux实用操作 4 6 IP地址 主机名 4 6 1 IP地址 主机名 学习目标 掌握什么是IP地址 掌握什么是主机名 掌握什么是域名解析 4 6 1 1 IP地址 1 每一台联网的电脑都会有一个地址 用于和其它计算机进行通讯 I
  • Qt界面之间信息传递(自身项目经验,一文必懂)

    Qt最常用的就是信号与槽这一结构 对于这一结构 我们可以看下Qt4和Qt5以上版本的差别 connect ui gt QCP fabric edit SIGNAL mousePress QMouseEvent this SLOT myMou