zoukankan      html  css  js  c++  java
  • 3、QT的信号和槽机制

    信号(signals):

    1. 自定义信号写到signals下;
    2. 信号没有返回值,即返回类型为void
    3. 只需要声明,不需要实现
    4. 可以有参数,也可以无参数,即可以重载
    signals:
         void yourSignal(); 
         void yourSignal(intx);    

    槽(slot)处理信号:

    1. 早期的qt必须写到public slot下,后期版本可以写到public下,也可以写成全局函数
    2. 返回值类型void
    3. 需要声明也需要实现
    4. 可以有也可以没有参数,可以重载
    pulicslots:
            void yourSlot();
            void yourSlot(intx);

    信号和槽的连接(connect):

    1. 一个信号可以连接多个槽
    2. 多个信号可以连接同一个槽
    3. 一个信号可以和另外一个信号连接
    4. 连接可以被移除
    5. 要把信号成功和槽连接(或连接到另外一个信号),他们的参数必须具有相同的顺序和相同的类型
    6. 如果信号的参数比它所连接的槽的参数多,那么多余的参数将会被简单的忽略

    小结:

      从QOBject或其子类(如QWidget)派生的类都能使用信号和槽机制。这种机制本身 是在QObject中实现的,并不只局限于图形用户界面编程中:当对象的状态得到改变时,它可以某种方式将信号发射(emit)出去,但它并不了解是谁在接收这个信号。槽被用于接收信号,事实上槽是普通的对象成员函数。槽也并不了解有任何信号与自己相连接。而且并不了解具体的通信机制。这实际上是“封装 ”概念的生动体现,信号与槽机制确保了Qt中的对象被当做软件的组件来使用,体现了“软件构件化”的思想。

    一个初识C++的小白
  • 相关阅读:
    Object-C中
    实例变量可见度修饰符
    Object-C 类和对象
    C语言中线程和进程的区别
    动态内存分配
    C语言中union关键字
    C语言结构体
    const define static extern 关键词详解
    基于TensorFlow Object Detection API进行迁移学习训练自己的人脸检测模型(一)
    Ubuntu18.04+CUDA9.0+cuDNN7.1.3+TensorFlow1.8 安装总结
  • 原文地址:https://www.cnblogs.com/Real-m/p/13476004.html
Copyright © 2011-2022 走看看