鱼C论坛

 找回密码
 立即注册
查看: 3745|回复: 3

[技术原创] 60-信号与槽(Signals & Slots)小结

[复制链接]
发表于 2016-10-7 15:03:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2016-10-21 14:26 编辑

1.jpg


到现在为止,信号和槽的两种建立及使用方法,我们都见过了~



可以很负责任的告诉你:

对于Qt,信号和槽是Qt对象模型的重中之重!!!

学会了精通了信号和槽,那么Qt就会了80%!

先暂时不发散开扯。

看我这里,阿。

就目前我们看到这两种方式,UI或代码。

无疑UI下,直接自动完成创建,非常方便省事实力!

但注意了,在日常实际开发中,从界面完成信号和槽基本上就是对简单的按钮,搞一搞。

而复杂的界面部件之间的关系,只能依靠代码搞定,很简单,这样更安全!

灵活的信号和槽机制,无疑是把是把双刃剑。

好,不能怎样。

但,不好,那就会更加不好。。。

不仅出现信号乱发,无槽可用等等,会被客户骂的悲催事情。

而且整个程序很有可能因此而推倒重来!

后面会专门深化扯信号和槽,现在不急,先了解有个心理准备!



    • 信号


    • 当客户需要让某个部件搞事情的时候,信号就会被这个对象发射。

      当一个信号被发射,与其相关联的槽就会被执行。

      信号和槽独立于任何GUI事件。

      并且只有当槽返回emit()(你可以理解为:确认)才算完成一次信号和槽机制。

      信号的声明必须在头文件定义!

      Qt的signals关键字指出进入了信号声明区,随后即可声明自己的信号函数!
      0.jpg





    • 槽是普通的C++成员函数,可以被多个信号正常调用(后面细讲),有参数不能缺省值。

      本次我们只使用了槽的一种类型:私有槽
      2.jpg


      槽函数其实有三种类型:
      public slots 意味着任何对象都可将信号与其连接
      protected slots 意味着当前类和子类可以将信号与之连接
      private slots 意味着只有类自己可以将信号与之连接




先小结到这里,后续会隆重粉墨登场~

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-10-7 15:40:07 | 显示全部楼层
还是pyqt简单些,槽没区分那么多。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-7 15:41:15 | 显示全部楼层
wei_Y 发表于 2016-10-7 15:40
还是pyqt简单些,槽没区分那么多。。

不过,到后期其实也用不到那么多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-22 14:50:17 | 显示全部楼层
我自己写了个SIGNAL类。可以正常连接和触发。
但是无法在触发的函数里面用到QT的任何部件

不二大神 知道怎么看pyqtsignal的具体实现么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 13:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表