<Qt> 在connect中使用lambda实现高效的信号/槽关联

在Qt中,使用QCoreApplication::connect()函数连接信号(signal)与槽(slots)的功能。
以下是connect函数的三种重载形式:

static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType = Qt::AutoConnection);

static QMetaObject::Connection connect(const QObject *sender, const QMetaMethod &signal,const QObject *receiver, const QMetaMethod &method,Qt::ConnectionType type = Qt::AutoConnection);

inline QMetaObject::Connection connect(const QObject *sender, const char *signal,const char *member, Qt::ConnectionType type = Qt::AutoConnection) const;

可以在函数声明中明显看出各个形参对应的意义,分别是[信号发送者,信号,接收者,槽],比如需要实现一个widget中点击button关闭窗口的功能,在Qt4这等老版本中,connect的写法是这样的:

connect(button,SIGNAL(QPushButton::cliked()),widget,SLOT(QWidget::close()));
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值