qt-connect函数总结

先把官方的文档显示出来

equivalent 等于 

duplicate 复制,完全一样

emit 发出

上面还有一些内容,我没有截图,官方的链接在这儿https://doc.qt.io/qt-5/qobject.html#connect

由于它的参数是const的我有查看了const参数的注意点,明白了为什么要使用const定义引用参数,因为参数里面有类的对象,而创建和销毁对象是很浪费时间的,为了提高效率,使用指针调用可以提高程序的运行效率

但是,这会造成安全隐患,因为是引用,可能会有修改传入对象的参数的隐患,为了避免,定义了const,使得这个值在这个局部函数里面不可以改变,这里再说一下个人关于参数指针的理解,传入的是一个地址,这个

地址指向这个对象的起始地址,它的操作程序码,比如:B2 E7 6T Y7等等在这个地址开始的一段空间内,而你对象的一些a->b,a.b,指的是偏移值。

那么这个函数的主要功能就可以理解了,就是传入一个对象,对象的的const char指针,这个可能和宏定义有关,我查看了一下vs的定义

Q_CORE_EXPORT const char *qFlagLocation(const char *method);

这个#是连接的意思,我就猜测这个传入的字符串应该是 1/2 + a(传入的地址) +系统自定义的flag全局调用表,那么这个函数就可以初步总结为:传入对象地址,传入对象地址的信号地址,传入接受信号的对象地址,传

入接受对象信号的操作地址,还有一个默认参数,正常情况下用不到,如果需要使用的话,再查阅官方文档。

在文档里面还提到了thread-safe,这里说一下,因为线程不是互相之间可以通知的,所有有时可能会发生冲突,例如对同一个资源的抢用,为了避免这个情况,有多种解决方案,比较好的就是锁机制,当某一个资源被

一个线程调用的时候就会用一个量来标记它已经被占用了,其他线程访问前会先询问一下这个量,这样就不会发生冲突,而connect函数遵循是线程安全的。

posted @ 2020-01-19 16:48  依然依然的a  阅读(489)  评论(0编辑  收藏  举报