QT中的Singal\slot机制

在QT工程项目中,会使用到多窗口或者二级窗口,而窗口之间做数据交流时,可以使用信号\槽机制,将两个不相关的对象相连,达到数据传输的效果。

语法

Connect函数

以子窗口向父窗口传递数据为例

  1. 子界面
    在子界面中,需要在类中添加信号(singal)函数,在信号函数中,获取数据。
son_win.h
signals:
void sendData(QString);  //传递数据的信号son_win.cpp
emit sendData(ui->textEdit->toPlainText());
//以获取textEdit数据为例,触发函数可以使用按键事件
  1. 父界面
    在父界面中,添加函数以接收信息
father_win.h
void receiveData(QString data);  // 槽函数father_win.cpp
void Widget::receiveData(QString data)
{ui->textBrowser->insertPlainText(data);  //接收输入并且显示ui->textBrowser->moveCursor(QTextCursor::End);
}

3.连接器
有了信号,但是两个事件是并不相关的,都是独立于工程的,所以需要一个连接器,也就是connect函数将两者关联起来,使得在信号发射时,能够立即响应。

father_win.cpp
//在构造函数中创建对象和调用connect函数
son_win *dlg = new son_win;connect(dlg,SIGNAL(sendData(QString)),this,SLOT(receiveData(QString)));

QT中的Singal\slot机制相关推荐

  1. C++中运行一个程序的内存分配情况及qt中的内存管理机制

    一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) - 一 ...

  2. qt中emit signal slot

    qt中emit signal slot qt中的类库有很多都是从QObject上继承下来的, 信号与反应槽(signals/slot)机制就是用来在QObject类或其子类之间通信的一种方法.作为一种 ...

  3. 【精华】详解Qt中的内存管理机制

    前言 内存管理,是对软件中内存资源的分配与释放进行有效管理的方法和理论. 众所周知,内存管理是软件开发的一个重要的内容.软件规模越大,内存管理可能出现的问题越多.如果像C语言一样手动地管理内存,一会给 ...

  4. Qt 中的信息输出机制:QDebug、QInfo、QWarning、QCritical 的简单介绍和用法

    Qt 中的信息输出机制 介绍 QDebug 在 Qt 中使用 qDebug 输出不同类型的信息 浮点数:使用 %!f(MISSING) 格式化符号输出浮点数 布尔值:使用 %! (MISSING)和 ...

  5. Qt中的信号与槽机制解析

    注:要想使用Qt的核心机制信号与槽,就必须在类的私有数据区声明Q_OBJECT宏,然后会有moc编译器负责读取这个宏进行代码转化,从而使Qt这个特有的机制得到使用. 所谓信号槽,简单来说,就像是插销一 ...

  6. Qt元对象和属性机制

    Qt元对象和属性机制 1. 元对象 元对象(meta object)意思是描述另一个对象结构的对象,比如获得一个对象有多少成员函数,有哪些属性.在Qt中,我们将要用到的是QMetaObject这个类. ...

  7. c#,c++,qt中多线程访问UI控件线程的问题汇总

    c#和MFC中可以创建UI控件及模态/非模态对话框,Qt中只能在主UI线程中创建访问UI控件. c#和MFC中可以通过全局变量或指针句柄等方式在工作线程中访问其他UI线程控件,其中c#需要Invoke ...

  8. qt中使用 ui 文件进行界面设计

    目录 1.创建 Qt 应用 ​2.项目创建成功 3.直接点击打开 mainwindow.ui 文件 4.随便从左边侧边栏拖拽一个空间到 界面设计区域 5.在右侧边栏右键点击 pushButton 控件 ...

  9. QT 中 关键字讲解(emit,signal,slot)以及使用

    Qt中的类库有接近一半是从基类QObject上继承下来,信号与反应槽(signals/slot)机制就是用来在QObject类或其子类间通讯的方法.作为一种通用的处理机制,信号与反应槽非常灵活,可以携 ...

最新文章

  1. 【JBOSS】User not found SA
  2. 了解JavaScript 对象的属性操作
  3. git安装【Windows】
  4. FFT-Matlab初步实现
  5. 2016php技术面试题,一个php的面试题,大家看看
  6. LeetCode之Power of Two
  7. web 信息模糊检索等 Lucene的实现
  8. 善用assert函数
  9. 计算器的二进制功能java_Java二进制文字– Java 7功能
  10. DevOps使用教程 华为云(18)git 把单个文件回退到某一版本
  11. 图书管理系统实验报告-面向对象的分析与设计
  12. AI和计算机会议,CCF推荐人工智能领域的会议和期刊
  13. 助航标志信息自动导入电子海图研究
  14. 阿里云吴翰清:如何落地数字化转型
  15. 饿了么接入之饿了么首次下单测试
  16. Ubuntu安装输入法却不能切换输入法
  17. matlab梯形法求二重积分,复化梯形公式公式求二重积分matlab源码
  18. Kimball维度建模
  19. Isight软件调用matlab
  20. 什么是谐波?谐波的危害

热门文章

  1. java计算机毕业设计科普网站源码+mysql数据库+系统+lw文档+部署
  2. “听鉴红古轩——赵鹏郭宴HIFI金曲音乐会”圆满落幕
  3. 人工智能——归结演绎推理
  4. Keil4工程用Keil5继续开发,编译报错问题探究
  5. PKI学习系列-基本概念
  6. 台式电脑增加算数计算机,台式电脑如何增加硬盘数量
  7. Python学习(1)——小甲鱼零基础入门python学习笔记(更新-ing)
  8. 固态硬盘计算机怎么自定义分区,如何将SSD固态硬盘设置为主硬盘,如何将SSD分区设置为主硬盘?...
  9. 3D游戏与编程——UI系统
  10. 物联网卡技术的8种通信协议