首页| 论坛| 消息

标题:为什么槽可以是私有的
作者:hechuan
日期:2006-07-05 16:02
内容:

最简单的例子,对象a使用了一个timer--- internal_timer,internal_timer的timeout信号可以连接到对象a的私有槽timeout上。按我的理解,timeout()槽是由对象internal_timer调用的,这样的话internal_timer就可以调用对象a的私有方法了。
我看过一篇文章,slot是以函数指针的形式保存的,slot函数也是由Qt调用的。我就有些糊涂了-- slot函数可以设定存取权限为public或private,代表什么意义呢?


#1 [cavendish 07-05 16:10]
slot就是特定的函数而已
当然可以public, private, protected了
#2 private slot权限无效 [hechuan 07-05 18:10]
刚才又看了一下Qt的文档,private slot是指只有对象自己才有权限来连接信号到这个private slot上。
不过我刚做了试验,在main函数里把对象a的信号连接到对象b的private slot上,运行正常,private slot可以被正常调用。我猜是因为Qt使用函数指针来保存slot,因此可以不受存取权限的限制。
#3 [hau19820906 07-13 11:52]
看你用什么信号和槽相联了,槽就是一函数,不想让信号随便连就私有啊
#4 [shiroki 07-13 17:45]
问了个专家,据说private...的关键字就是个摆设, 只是提醒coder怎么去用这个slot, 没啥实际作用。 不过还据说version4里把这几个关键字的功能实现了。 不知道有没有人试过
#5 [stylev 07-14 01:15]
不管slots被修饰为private或protected也好,都会被看成public权限...
即别的类同样可以调用这个类的slots

<< 1 2 >> (1/2)

回复 发表
主题 版块