qt的信号,槽有什么作用

BigBlackTree 2011-09-09 09:31:50
我理解信号就是把一个事件与一个执行函数相关联,那这有什么作用呢,比如我们在一个函数中想发送一个信号,就相当于去执行那个关联函数,那发这个信号有什么意义,直接调用那个函数不行么,还要connect,emit的,多麻烦。
还有一个问题是比如combo box没有clicked信号,那我想在想让combo box有clicked事件,该怎么做呢?
...全文
548 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangmeiling0110 2011-09-15
  • 打赏
  • 举报
回复
学习中,对于QT很迷糊
我是学友 2011-09-13
  • 打赏
  • 举报
回复
Qt的信号和槽很重要,理解了以后会发现很方便很方便
百事烟 2011-09-13
  • 打赏
  • 举报
回复
正在学习这个,一头雾水,,,

qt这个ide用起来没有vc爽,可能是不习惯吧
zhu_xz 2011-09-13
  • 打赏
  • 举报
回复
信号和槽用于对象间的松耦合,异步操作,etc.
碎炎 2011-09-09
  • 打赏
  • 举报
回复
信号是给外部接收者的
youcanone 2011-09-09
  • 打赏
  • 举报
回复
嘿嘿!你直接调用那个函数的话,发起者是谁?也就是sender是谁?我觉得信号和槽机制还是很好用的,connect函数里面包含的信息和windows下的事件内容差不多,关于第二个问题我想你这是要自定义控件?QT可以自定义信号的,回头你看看自定义这块
风拂林 2011-09-09
  • 打赏
  • 举报
回复
比如,你点击一个pushbutton,你要怎么去让事件与函数相关联?--信号槽
你没事的话怎么不可能一直执行着clicked用的函数吧;
在pushbutton里的clicked自身也带有信号槽的。

combo box是下拉选择框当然,没有clicked信号,有clicked你能做什么?一般用上textchange就行了
一行乱码 2011-09-09
  • 打赏
  • 举报
回复
个人感觉信号-槽机制和消息机制有点儿想像

条件满足时触发信号emit,然后与signal connect的slot就会执行

单个类的话【例如QPushButton】确实感觉不到有用

但是很多个对象之间互相交互时是有用的
【例如有多个项目都用到QPushButton
A项目:QPushButton clicked时QTableWidget更新
B项目: QPushButton clicked时QLabel更新
......

此种情况下,岂不是每个项目中的QPushButton 的clicked()行为都得重写?


tt2com 2011-09-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 bigblacktree 的回复:]
我理解信号就是把一个事件与一个执行函数相关联,那这有什么作用呢,比如我们在一个函数中想发送一个信号,就相当于去执行那个关联函数,那发这个信号有什么意义,直接调用那个函数不行么,还要connect,emit的,多麻烦。
还有一个问题是比如combo box没有clicked信号,那我想在想让combo box有clicked事件,该怎么做呢?
[/Quote]
调用QObject::connect();
信号和槽 我个人也是将他们看做event和mfc的event非常类似,只是这个比Qevent简单
renkaihao 2011-09-09
  • 打赏
  • 举报
回复
有狼和羊两个类,如果狼距离羊很近,那羊就要跑,用qt写就要用到信号了,当狼距离羊近的时候发送信号,羊受到信号就开始跑,但如果没有的话,两个独立的类就无法联系了,兄弟!

16,203

社区成员

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

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