APP下载

嵌入式Qt中信号与槽机制的研究

2014-01-16崔培雷

电子设计工程 2014年24期
关键词:定义机制信号

金 繁,崔培雷

(北方工业大学 北京 100144)

信号和槽机制是Qt的核心机制,要精通Qt编程就必须对信号和槽有所了解。信号和槽是一种高级接口,应用于对象之间的通信,它是Qt的核心特性,也是Qt区别于其它工具包的重要地方。信号和槽是Qt自行定义的一种通信机制,它独立于标准的C/C++语言,因此要正确的处理信号和槽,必须借助一个称为moc(Meta Object Compiler)的Qt工具,该工具是一个C++预处理程序,它为高层次的事件处理自动生成所需要的附加代码。在Qt中信号和槽取代了函数指针,使得我们编写这些通信程序更为简洁明了。信号和槽能携带任意数量和任意类型的参数,他们是类型完全安全的,不会像回调函数那样产生core dumps。所有从QObject或其子类 (例如Qwidget)派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射(emit)出去,这就是对象所要做的全部事情,它不知道另一端是谁在接收这个信号。这就是真正的信息封装,它确保对象被当作一个真正的软件组件来使用。槽用于接收信号,但它们是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且,对象并不了解具体的通信机制。你可以将很多信号与单个的槽进行连接,也可以将单个的信号与很多的槽进行连接,甚至于将一个信号与另外一个信号相连接也是可能的,这时无论第一个信号什么时候发射系统都将立刻发射第二个信号,信号与槽构造了一个强大的部件编程机制。

1 信号

当某个信号对其客户或所有者发生的内部状态发生改变,信号被一个对象发射。……

登录APP查看全文

猜你喜欢

定义机制信号
信号
完形填空二则
自制力是一种很好的筛选机制
基于FPGA的多功能信号发生器的设计
基于LabVIEW的力加载信号采集与PID控制
成功的定义
破除旧机制要分步推进
注重机制的相互配合
打基础 抓机制 显成效
修辞学的重大定义