自学QT之传递控件指针判断是哪个控件被操作

假设你有一百个按钮,需要知道是哪一个按钮被单击了。

如果采用一百个槽函数,那可真是坑爹了。所以我们必须把他们都连接到同一个槽,这在QT中是可以的。

那么问题来了,我怎么判断是哪一个按钮被单击了呢?

很简单哦,有个sender()函数。

尝试搜索,网上的说法就一行代码: QPushButton *btn=qobject_cast<QPushButton*>(sender());

然后就说可以了,简直是大坑啊,很多人还是不知所云的好吗?

首先,建立一个项目,我这里偷懒,直接用ui界面,加上两个按钮,按钮1和按钮2

连接到同一个槽。槽函数这么写:
举个栗子,

QPushButton *btn=qobject_cast<QPushButton*>(sender());if(btn->objectName()=="hello")

{

qDebug()<<"交流群271251545";//对,我就是这么打广告的

}

else if(btn->objectName()=="world")

{

qDebug()<<"逼了狗了,按钮2被单击了呢!";

}

这里的btn不做什么特殊用途,就是用来获取指针的,把获取到的指针赋给它。通过判断objectname来判断是哪个按钮被单击了。

完整代码直接上个图好了:



同样的,其它控件也都是这样子的道理哦。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值