QT总结之信号与槽
2017-06-16 17:32
211 查看
理解
qt通过发出信号相应得槽函数进行响应并执行。
这个机制可以同一个类内部进行通信建立关联,也可以在不同类之间建立关联。
槽函数可以理解为普通得成员函数,但此函数是通过信号触发执行的。
当建立连接的响应的信号被触发,槽函数执行。
举个例子:
现在有A,B两个类
class A{
slot: a_slot();
}
class B{
signal: b_signal();
}
在A函数中声明一个槽函数,B函数中定义一个信号。
定义一个连接connect(),建立a_slot()和b_signal()之间的一个连接。
之后你在B类中只要触发这个(b_signal )信号就可以执行a_slot函数。
这是c++没有的功能,在c++中你想要调用A的一个函数必须 在B中声明A对象的一个实例,才能调用A的方法。
引用转载
信号
当对象改变其状态时,信号就由该对象发射 (emit) 出去,而且对象只负责发送信号,它不知道另一端是谁在接收这个信号。这样就做到了真正的信息封装,能确保对象被当作一个真正的软件组件来使用。
槽
用于接收信号,而且槽只是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且对象并不了解具体的通信机制。
信号与槽的连接
所有从 QObject 或其子类 ( 例如 Qwidget ) 派生的类都能够包含信号和槽。因为信号与槽的连接是通过 QObject 的 connect() 成员函数来实现的。
其中 sender 与 receiver 是指向对象的指针,SIGNAL() 与 SLOT() 是转换信号与槽的宏。
qt通过发出信号相应得槽函数进行响应并执行。
这个机制可以同一个类内部进行通信建立关联,也可以在不同类之间建立关联。
槽函数可以理解为普通得成员函数,但此函数是通过信号触发执行的。
当建立连接的响应的信号被触发,槽函数执行。
举个例子:
现在有A,B两个类
class A{
slot: a_slot();
}
class B{
signal: b_signal();
}
在A函数中声明一个槽函数,B函数中定义一个信号。
定义一个连接connect(),建立a_slot()和b_signal()之间的一个连接。
之后你在B类中只要触发这个(b_signal )信号就可以执行a_slot函数。
这是c++没有的功能,在c++中你想要调用A的一个函数必须 在B中声明A对象的一个实例,才能调用A的方法。
引用转载
信号
当对象改变其状态时,信号就由该对象发射 (emit) 出去,而且对象只负责发送信号,它不知道另一端是谁在接收这个信号。这样就做到了真正的信息封装,能确保对象被当作一个真正的软件组件来使用。
槽
用于接收信号,而且槽只是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且对象并不了解具体的通信机制。
信号与槽的连接
所有从 QObject 或其子类 ( 例如 Qwidget ) 派生的类都能够包含信号和槽。因为信号与槽的连接是通过 QObject 的 connect() 成员函数来实现的。
connect(sender, SIGNAL(signal), receiver, SLOT(slot));
其中 sender 与 receiver 是指向对象的指针,SIGNAL() 与 SLOT() 是转换信号与槽的宏。
相关文章推荐
- Qt 信号槽总结
- Qt信号和槽的个人总结
- Qt 的几个核心机制总结之 信号与槽
- Qt总结1——槽与信号
- 初学Qt:QLineEdit类信号总结
- QT信号和槽总结
- Qt中消息信号与事件的总结
- Qt信号槽分析总结
- Qt信号和槽的个人总结
- qt中信号和槽的总结
- Qt 的几个核心机制总结之 信号与槽
- Qt学习总结(C鱼)之信号与槽01
- qt 与 vs2008 集成过程总结
- QT中的信号和槽通讯机制
- QT 安装的最新总结
- Qt 出现“undefined reference to `vtable for”原因总结
- 利用博创2410s实验箱进行qt开发经验总结(上)
- Qt源码分析之信号和槽机制
- 关于在windows下部署发布QT程序的总结
- QT中窗口刷新事件的学习总结(http://wuguangchao.spaces.live.com/blog/cns!6F7400464FEEC42A!144.entry)