VS&QT - Qt Creator无转到槽选项

问题

如题所述

解决方法

自己动手丰衣足食

//xxx.h
signals:
	xxx
private slots:
	xxx
//xxx.cpp
connect(xx,xx,xx,xx);

半自动化

用惯了转到槽函数肯定对此难以适应,觉得特别麻烦。其实我们有相对简洁的方法。

仅需要规范命名即可!

例如,我需要添加一个 pushButton 的点击事件:

// xxx.h
private slots:
	void on_pushButton_DigitalIO_clicked();
// xxx.cpp
void xxxx::on_pushButton_DigitalIO_clicked(){
	//...
}

发现该方法源于一次意外,自定义槽函数始终调用两次,而信号只发送了一次。最终发现是槽函数名问题。

于是我开始思考,我们点击转到槽,QT Creator 为我们做了什么?

先说结论,Qt Creator 会 帮我们生成特定格式命名的槽函数;编译时,根据命名规则在内部进行 connect

具体为:

  • 修改 ui文件 ,编译生成 ui_xxxx.h
  • ui_xxxx.h 中包含 setupUint( ) 函数,该函数末尾一定存在 QMetaObject::connectSlotsByName(HardwareControl)

让我们看就 Qt 官方文档的解释:
在这里插入图片描述
该函数会递归搜索给定对象的所有子对象,并将来自它们的匹配信号连接到遵循一定规则的对象槽。

按照该规则,我们只需要定义好以下槽函数即可,connect 就让 Qt 去完成吧~

void on_<object name>_<signal name>(<signal parameters>);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值