60-信号与槽(Signals & Slots)小结
本帖最后由 不二如是 于 2016-10-21 14:26 编辑到现在为止,信号和槽的两种建立及使用方法,我们都见过了~
[*]UI设计模式的信号和槽编辑
[*]代码实现
可以很负责任的告诉你:
对于Qt,信号和槽是Qt对象模型的重中之重!!!
学会了精通了信号和槽,那么Qt就会了80%!
先暂时不发散开扯。
看我这里,阿。
就目前我们看到这两种方式,UI或代码。
无疑UI下,直接自动完成创建,非常方便省事实力!
但注意了,在日常实际开发中,从界面完成信号和槽基本上就是对简单的按钮,搞一搞。
而复杂的界面部件之间的关系,只能依靠代码搞定,很简单,这样更安全!
灵活的信号和槽机制,无疑是把是把双刃剑。
好,不能怎样。
但,不好,那就会更加不好。。。
不仅出现信号乱发,无槽可用等等,会被客户骂的悲催事情。
而且整个程序很有可能因此而推倒重来!
后面会专门深化扯信号和槽,现在不急,先了解有个心理准备!
[*]信号
当客户需要让某个部件搞事情的时候,信号就会被这个对象发射。
当一个信号被发射,与其相关联的槽就会被执行。
信号和槽独立于任何GUI事件。
并且只有当槽返回emit()(你可以理解为:确认)才算完成一次信号和槽机制。
信号的声明必须在头文件定义!
Qt的signals关键字指出进入了信号声明区,随后即可声明自己的信号函数!
[*]槽
槽是普通的C++成员函数,可以被多个信号正常调用(后面细讲),有参数不能缺省值。
本次我们只使用了槽的一种类型:私有槽
槽函数其实有三种类型:
public slots 意味着任何对象都可将信号与其连接
protected slots 意味着当前类和子类可以将信号与之连接
private slots 意味着只有类自己可以将信号与之连接
先小结到这里,后续会隆重粉墨登场~{:10_341:}
{:10_257:}还是pyqt简单些,槽没区分那么多。。 wei_Y 发表于 2016-10-7 15:40
还是pyqt简单些,槽没区分那么多。。
不过,到后期其实也用不到那么多 我自己写了个SIGNAL类。可以正常连接和触发。
但是无法在触发的函数里面用到QT的任何部件
{:10_266:}{:10_266:}{:10_266:}
不二大神 知道怎么看pyqtsignal的具体实现么
页:
[1]