• 5024阅读
  • 11回复

到底什么时候适合用槽,什么时候用成员函数来实现? [复制链接]

上一主题 下一主题
离线hanfengjay
 
只看楼主 倒序阅读 楼主  发表于: 2009-05-30
刚学QT,在看官方的手册里的教程,有个疑惑:

我看到类里面有些是用的公有成员函数实现的,有些是用的槽实现的,到底那些情况用槽呢,那些用成员函数好呢?有什么原则没?
离线rqzrqh

只看该作者 1楼 发表于: 2009-05-30
多看例子,多比较,多练
离线hanfengjay
只看该作者 2楼 发表于: 2009-05-30
那位高手帮帮我阿。。。跪谢了。。
离线hanfengjay
只看该作者 3楼 发表于: 2009-05-30
回 1楼(rqzrqh) 的帖子
能说个一般情况吗。。。让我好入个门。。谢谢了,,
离线hanfengjay
只看该作者 4楼 发表于: 2009-05-30
是不是一般把 不返回的函数 设为槽,可以这样理解吗
离线rqzrqh

只看该作者 5楼 发表于: 2009-05-30
槽是事件触发的,可以在槽内调用函数
离线浪漫天使
只看该作者 6楼 发表于: 2009-05-31
槽是槽函数的简称
所以槽首先是函数,其次才是槽
既然是函数,就有返回值,也可以被调用
槽跟函数的区别就是,槽可以跟信号连接起来,而函数不行.

注意这里,是说可以跟信号连接起来,而不是必须跟信号连接起来
但一般情况,既然定义成槽了,就尽量跟信号连接起来吧,否则没有必要弄成槽,普通函数就可以了.

既然槽要跟信号连接起来,那这个时候槽的参数类型就要有些注意了,而不能随便什么类型的参数都可以
但函数参数类型就随意点,你想怎么调用就怎么弄参数.
离线robertkun

只看该作者 7楼 发表于: 2009-05-31
信号是一个特定的标识,一个槽就是一个函数,与一般的函数不同,槽函数既可和信号关联,也可以像普通函数一样被调用。

信号和槽的关联可以有几种模式:
1. 一个信号和一个槽关联
2. 一个信号和多个槽关联
3. 多个信号和一个槽关联

一个信号和多个槽关联的情况下,当发生该信号的时候,与该信号关联的各个槽以任意的先后顺序立即执行。此外,信号还可以和信号进行关联。当两个信号关联的时候,每一个信号的发出将会激活QT发送第二个信号。

Qt信号和槽机制的优点是:
1、类型安全的
2、松散耦合的
关于信号和槽机制的效率问题:同回调函数相比较,信号和槽机制是比较慢的,通常,传递一个信号来调用槽函数将会比直接调用非虚函数慢10倍。



楼主看一下,完全是自已手敲上去的,汗屡屡的。。共同学习吧。。^-^
                                              简单的生活使人快乐!
离线shiroki

只看该作者 8楼 发表于: 2009-05-31
信号和槽是拿来做进程内部通讯的阿。 需要通讯的时候用, 不需要或者直接调用方便的话就用函数了。
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线laurentium
只看该作者 9楼 发表于: 2009-05-31
信号槽的好处,编程了就知道了
可以降低耦合性
不像回调那样要传一个回调指针
离线daizb05
只看该作者 10楼 发表于: 2009-05-31
信号和槽是连起来用的,有信号才会用槽,不需要信号就不用槽
离线hanfengjay
只看该作者 11楼 发表于: 2009-05-31
谢谢各位了。。。
快速回复
限100 字节
 
上一个 下一个