connect函数和disconnect是否有必要成对使用?

庞老板 2013-09-14 05:31:46
问题描述:
若执行这段代码“connect(sendBtn, SIGNAL(clicked()), this, SLOT(sendMsg()));”n次的话,当点击一下sendBtn按钮时,sendMsg()就会被执行n次...
我不太了解信号和槽机制的内部实现机制,不过从这个现象来看,当sendBtn被点击后,系统会遍历clicked()信号所维护的与槽(信号)的联系表,来执行相应的槽(信号)函数。因为上面的connect的函数执行了n次,且槽函数均为sendMsg(),所以就执行了n次。

麻烦高手指教下connect函数和disconnect函数都做了哪些工作?
...全文
1081 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
x_flamer 2015-12-04
  • 打赏
  • 举报
回复
引用 2 楼 ppdayz 的回复:
你认为Qt会这样实现吗,或者说你认为这样现实的库会有人用吗? [quote=引用 楼主 code_pang 的回复:] 问题描述: 若执行这段代码“connect(sendBtn, SIGNAL(clicked()), this, SLOT(sendMsg()));”n次的话,当点击一下sendBtn按钮时,sendMsg()就会被执行n次... 我不太了解信号和槽机制的内部实现机制,不过从这个现象来看,当sendBtn被点击后,系统会遍历clicked()信号所维护的与槽(信号)的联系表,来执行相应的槽(信号)函数。因为上面的connect的函数执行了n次,且槽函数均为sendMsg(),所以就执行了n次。 麻烦高手指教下connect函数和disconnect函数都做了哪些工作?
[/quote] ni你认为你的认为很有说服力吗,自己不试试就上来乱认为?
庞老板 2013-09-20
  • 打赏
  • 举报
回复
引用 3 楼 super_rat 的回复:
这种不都是一次性的嘛,signal是clicked,slot是sendMsg。怎么会有这么多次执行 看看信号-槽的讲解就好。这玩意每个人理解起来不一样。
一次点击确实会执行n次槽函数,你可以试一下。
zjj2282680 2013-09-17
  • 打赏
  • 举报
回复
会不会是你的线程跑了N次了,导致一次按下button,实际触发了N次clicked()
绝版紫太狼 2013-09-17
  • 打赏
  • 举报
回复
这种不都是一次性的嘛,signal是clicked,slot是sendMsg。怎么会有这么多次执行 看看信号-槽的讲解就好。这玩意每个人理解起来不一样。
ppdayz 2013-09-17
  • 打赏
  • 举报
回复
你认为Qt会这样实现吗,或者说你认为这样现实的库会有人用吗?
引用 楼主 code_pang 的回复:
问题描述: 若执行这段代码“connect(sendBtn, SIGNAL(clicked()), this, SLOT(sendMsg()));”n次的话,当点击一下sendBtn按钮时,sendMsg()就会被执行n次... 我不太了解信号和槽机制的内部实现机制,不过从这个现象来看,当sendBtn被点击后,系统会遍历clicked()信号所维护的与槽(信号)的联系表,来执行相应的槽(信号)函数。因为上面的connect的函数执行了n次,且槽函数均为sendMsg(),所以就执行了n次。 麻烦高手指教下connect函数和disconnect函数都做了哪些工作?

21,441

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧