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++的小白
  • 相关阅读:
    PHP获取时间or戳?
    滤镜灰CSS
    css3 文字渐变色
    除指定区域外点击任何地方隐藏DIV
    margin-top bug 处理方案
    基于Bootstrap好用的瀑布流
    初始数据库
    协程
    粘包及解决方案
    log日志的三种方式
  • 原文地址:https://www.cnblogs.com/Real-m/p/13476004.html
Copyright © 2011-2022 走看看