(一)QObject
QObject是QT框架的核心,在该对象内可以使用QT框架的信号和槽机制。
一个QObject对象创建在另一个QObject类(该类可以称作父类)中,该对象将自动将其自身添加到父对象的孩子列表中。父类拥有对所有子QObject对象的控制权,可以自动在析构函数中删除所有的子对象。
需要使用信号和槽机制的QObject对象,必须在声明类中加入Q_OBJECT宏,该机制依赖于元对象编译器(MOC)。不管有没有用到信号和槽机制,最好都加上该宏,避免出现一些奇怪的问题。
(二)
(三)
[static] QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)br
其中连接类型说明如下:
枚举值 数值 说明
Qt::AutoConnection 0 默认值。如果接收对象和触发信号的对象处于同一线程中,则选择直连的方式;否则,使用队列进行连接。
Qt::DirectConnection 1 发出信号后立即调用槽函数。该槽函数位于信号所处的线程中。
Qt::QueuedConnection 2 当控制权返回到接收者线程的事件循环时,将调用该插槽。该插槽在接收者的线程中执行。
Qt::BlockingQueuedConnection 3 与Qt :: QueuedConnection相同,但是发送信号的线程被挂起,直到槽函数执行完成再恢复线程。如果接收器位于发送信号的线程中,则不得使用此连接,否则应用程序将死锁。
Qt::UniqueConnection 0x80 可以使用按位OR来与上述任何一种连接类型组合。设置Qt :: UniqueConnection时,如果连接已经存在(即,如果相同信号已经连接到同一对对象的同一插槽),则QObject :: connect()将失败。
(四)委托和回调的区别
委托和回调的区别委托就是说,我委托你这个人去帮我办什么事,因为我去不了,我今天有班要上我呢,就委托你去帮我办事,这叫委托回调,那就是调回原来的地方了,原来我在这里上班,然后我出去又到了其他地方去上班了,后来又把我调回原单位了,这就叫回调。
https://blog.csdn.net/qq_27726087/article/details/126126248
https://www.cnblogs.com/yangjunhe460/p/10471246.html
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!