新手 MFC转学习QT 疑惑

javaweb_research 2011-11-29 02:42:06
QT主要的信号和槽 是不是类是MFC里的UDP啊 一个发送信号 一个接收 按照接收信号的不同处理对应的函数


连接信号和槽的 connect函数 怎么实现的? 发送信号 好理解 那接收呢? 是不是和socket 里的recv一样啊? 一直在那监听? 还是和MFC一样是消息循环啊?

...全文
128 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
拉卡尼休 2011-11-29
  • 打赏
  • 举报
回复
加群:16877602
javaweb_research 2011-11-29
  • 打赏
  • 举报
回复
能否加个QQ 652511569 不会总麻烦的
[Quote=引用 4 楼 linux_qt 的回复:]
信号、槽最终还是回调,CONNECT类似于注册了,这个自己看源码就清楚了。

另外学QT就得看源码,学习它那种设计思路也能提高自个
[/Quote]
七擒关羽 2011-11-29
  • 打赏
  • 举报
回复
还是绑定的原理,把事件与触发按钮连接在一起,让消息可以传递
拉卡尼休 2011-11-29
  • 打赏
  • 举报
回复
信号、槽最终还是回调,CONNECT类似于注册了,这个自己看源码就清楚了。

另外学QT就得看源码,学习它那种设计思路也能提高自个
碎炎 2011-11-29
  • 打赏
  • 举报
回复
UDP是传输层协议 跟信号槽没关系把,信号槽跟mfc的消息映射差不多
当你点击一个按钮的时候 在应用程序的消息队列中会产生一个鼠标点击事件,通过QApplication::exec()函数封装事件,封装成了QMousePressEvent,然后通过notify()函数来分发到各个对象的event()函数下处理。event()函数不处理具体事件,只是根据QEvent::type()来区分事件类型并交给各个默认的事件处理函数来处理,你点击了按钮就运行了mousePressEvent()这个函数,这个函数会emit一个点击信号,当你在外部用connect函数连接了某个对象的槽函数的时候就会执行相应的槽函数。
MFC QT在windows平台上,底层还是消息循环,只是被隐藏了实现

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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