Qt信号和槽传递参数错误

记录一下使用qt信号和槽使用时遇到的问题,我创建ImageButton中定义了一个发出int和bool信号和发送的槽:

signals:

void selectedClick(int, bool);

slots:

void emitSelectedClick() {

        selected = !selected;

        emit selectedClick(index, selected);

}

 在另一边使用connect连接却发现,无论什么时候b都是固定的值,没有随着变化而变化,在发送信号的那边监听select时却是正确变化

connect(button, &ImageButton::selectedClick, [&](bool b) {
    qDebug() << b;
    });//连接信号

 引发这个问题的原因是qt把传递的int index当成bool类型被槽函数获取到了!而index通常不会变化,改变连接参数后,信号接收正常,所以qt连接信号时最好把全部参数写上,不要图方便省略

connect(button, &ImageButton::selectedClick, [&](int index, bool b) {
    qDebug() << b;
    });//连接信号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值