qt 5信号和槽的新形式,附带lambda表达式在这里的应用(偷懒的神器) qt官方蓝牙的btcha这个demot的个人解读

1 关于信号与槽的一点感想

  

新技巧QOverload是为了指定使用哪一个函数.此处有一个connect信号和一个connect槽,其中槽没有形参变量

 

 

 

 

 

2  可以用函数找到发送信号的是哪个对象

 

 

 3  退出函数的一种写法

connect(ui->quitButton, &QPushButton::clicked, this, &Chat::accept);

然后主函数中加入这样的话

 

 

 

 4  信号槽的连接方式对于信号发送时机的影响的一点心得

 

 

 5  lambda表达式,可以参考借用  https://www.cnblogs.com/yuankaituo/p/5135750.html

 

 学会后,我发现我很喜欢这个,但是结果就是代码很容易成一坨一坨的,很难看,易读性对于初学者或者想要做联系的人来说,很大挑战.因此建议,简单的一两句话,并且只用一次这种函数,用lambda真的很舒服,对于需要复杂处理逻辑的,我建议还是勤快点,写写函数吧,

此处是一坨坨代码的代表  https://www.cnblogs.com/Oldz/p/13223812.html

我写的比较简洁

 

 6  最后献上我自己对qt官方一个蓝牙通讯demo的解读btchat  (有错误的地方还请谅解,毕竟经验好不足)

    注意,可运行在安卓和pc两个平台,至少需要两个设备,可以三个设备以上相互互联,形成局域网(前提是都得有蓝牙)

    https://files.cnblogs.com/files/RYSBlog/btchat.zip

    

 7  追加,今天还有一个信号和槽的坑,如图,图中最后的还是老式的信号与槽的写法,有个坑就是,信号和槽后要加上(),因为SIGNAL和SLOT中都是字符串,这就意味着如果你不加(),程序也 不会报错,但是运行时就会出异常,这种错误属于运行异常,排查也让人头疼,在学习新模块出现这种错误更加让人头大=_=|

  SIGNAL和SLOT这种方式对lambda的支持不是很好.建议用新的信号和槽进行连接

 

posted @ 2020-10-27 20:15  小城熊儿  阅读(351)  评论(0编辑  收藏  举报