QT信号和槽

1.最方便的方法就是使用UI设计直接将object转到槽,然后选择促发信号类型以及设计槽函数的内容,完成对应的业务。在对应的区域比如该类的构造函数中调用connect(&sender,&signal,&receiver,&slot),关联上部件和信号与槽函数。

2.当然遇到需要自定义信号的情景,需要手动写Signal:关键词修饰自己写的自定义信号,在QT5可以不加public(访问权限) Slot:修饰槽函数,但在QT4版本需要的。加上修饰词倒也可以更加直观找到槽函数,此外信号和槽函数都是没有返回值的,槽函数对应信号来设计函数,信号是一个没有返回值的函数,只有声明,没有实现过程。槽函数是有实现过程。

 3.在QT4中connect()Signal和Slot都是使用宏SIGNAL(XXX)以及SLOT(XXX),优点在于可以对应补全,缺点在编译时候转换成字符串不具备检查功能,若是有错误往往是运行时候才能看出来。

4.关于有多个重载信号和重载槽函数,为了避免二义性需要使用函数指针,注意信号的参数和槽函数的参数应当一致对应。无论是参数的个数顺序和类型。

5.在槽函数比较简单的情况下,减少繁杂的槽函数定义和对应实现的设计,可以化繁为简使用lambda表达式,但是在PRO中需要添加CONFIG+= C++11 才能正确使用表达式  该表达式的使用方法以及语法格式如下:
[ 【=,this,&】]()【mutable】
{

}  此处【】表示可选内容。= (外部所有局部变量,包括类内的成员等等以值read_only只读传递传进来配合mutable便可改)

this(类中所有成员值传递方式)                        &(把外部所有局部变量引用方式传递,但是不推荐容易内存上出现问题)

mutable (表示可变)  

最后connect(&sender,&signal,const char * method)也是connect多个重载函数中的一个,参数只有三个。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值