• 4480阅读
  • 7回复

Qt 同一页面所有按钮事件捕获 [复制链接]

上一主题 下一主题
离线dyf007
 

只看楼主 正序阅读 楼主  发表于: 2018-09-06
我做了一个界面,想要同时捕获界面上所有按钮的的pressed()信号,就是无论按下哪一个按钮都能捕获。除了将这些按钮都重写之外,有没有哪位大神知道有其他简单一点的方法。
离线dosmlp

只看该作者 7楼 发表于: 2018-09-17
同意一楼,把需要的按钮的单击信号链接到同一个槽函数就可以了
离线dbzhang800

只看该作者 6楼 发表于: 2018-09-09
eventfilter 简单粗暴
离线songvsclou

只看该作者 5楼 发表于: 2018-09-07
QButtonGroup应该行
离线liudianwu

只看该作者 4楼 发表于: 2018-09-06
用QSignalMapper,或者将所有按钮绑定到同一个槽函数,然后槽函数第一行这样写
QPushButton *btn= (QPushButton *)sender();
QString btnText = btn->text();
QString objName = btn->objectName();
这样你就可以区分具体是哪个按钮触发的信号关联的槽了。
欢迎关注微信公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发) QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线firebolt

只看该作者 3楼 发表于: 2018-09-06
楼下两位的方法都是可行的。那天随手打了一个QGroupBox是不对的,QButtonGroup更简单些。
离线大漠之鹰

只看该作者 2楼 发表于: 2018-09-06
QSignalMapper可以吧
本是后山人,偶作前堂客,醉舞经阁半卷书,坐井说天阔。大志戏功名,海斗量福祸,论到囊中羞涩时,怒指乾坤错
QQ:874164244
离线小韩老师

只看该作者 1楼 发表于: 2018-09-06
如果所有按钮是都是一个类型的,可以直接将所有按钮都链接到一个处理的信号槽中。如果按钮类型复杂多样,也可以用如上方法,就是操作复杂点。
其它方法也有,比如在一个区域放置一堆模拟按钮的东西,你截获所有的鼠标信息,然后处理鼠标信息,匹配是那个按钮被按下
快速回复
限100 字节
 
上一个 下一个