QT4和 QT5 槽函数连接的区别

正常连接方式

//QT4官方用列
  QLabel *label = new QLabel;
  QScrollBar *scrollBar = new QScrollBar;
  
  QObject::connect(scrollBar, SIGNAL(valueChanged(int)),
                   label,  SLOT(setNum(int)));
//QT5官方用列
  QLabel *label = new QLabel;
  QLineEdit *lineEdit = new QLineEdit;
  
  QObject::connect(lineEdit, &QLineEdit::textChanged,
                   label,  &QLabel::setText);

有重载的信号槽 连接方式

//Qt4在连接有重载信号槽时,直接在原有基础上写上形参数即可。

在这里插入图片描述

//Qt5在连接有重载信号槽时,需要使用函数指针,提前绑定重载信号和槽的地址,区别是有参还是无参信号槽。

在这里插入图片描述
最后一行,使用有参的信号 连接 无参的槽函数。

两者区别

QT5连接方式:

缺点:使用稍复杂
优点:connect()的第2和第4参数传递的是地址,编译器在编译过程中会对数据的正确性进行检测。如信号名写错,或参数写错,会报错。

QT4连接方式:

优势:使用简单
缺点:在进行信号槽连接的时候,信号槽函数通过宏SIGNALSLOT转换为字符串类型。宏函数内部的数据不会被检测,传错数据编译器不会报错,且运行起来发现问题不容易定位。

总结

推荐使用 QT5 方式进行信号槽连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值