加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

QT中qobject_cast<---*>(sender())用法

(2013-04-15 14:08:34)
分类: QT
1.当某一个Object发出一个signal的时候,它就是一个sender,系统会记录下当前是谁发出出这个signal的,所以你在对应的slot里就可以通过sender()得到当前是谁触发了你的slot,对应的是QObject->d->sender.

2.有可能多个Object的signal会连接到同一个signal(例如多个Button可能会connect到一个slot函数onClick()),因此这是就需要判断到底是哪个Object触发了这个signal,根据sender的不同来进行不同的处理。

例:

Object:
QAction* actDefaultConstraint;
QAction* actFixedSize;
slot:

QAction* act=qobject_cast(sender());
if(act==actDefaultConstraint) 
 
 layout()->setSizeConstraint(QLayout::SetDefaultConstraint);
 
else if (act==actFixedSize) 
 
 layout()->setSizeConstraint(QLayout::SetFixedSize); 
 }

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有