• 6067阅读
  • 6回复

为什么槽可以是私有的 [复制链接]

上一主题 下一主题
离线hechuan
 
只看楼主 倒序阅读 楼主  发表于: 2006-07-05
最简单的例子,对象a使用了一个timer--- internal_timer,internal_timer的timeout信号可以连接到对象a的私有槽timeout上。按我的理解,timeout()槽是由对象internal_timer调用的,这样的话internal_timer就可以调用对象a的私有方法了。

我看过一篇文章,slot是以函数指针的形式保存的,slot函数也是由Qt调用的。我就有些糊涂了-- slot函数可以设定存取权限为public或private,代表什么意义呢?
[ 此贴被XChinux在2006-07-05 20:53重新编辑 ]
离线cavendish

只看该作者 1楼 发表于: 2006-07-05
slot就是特定的函数而已
当然可以public, private, protected了
离线hechuan
只看该作者 2楼 发表于: 2006-07-05
private slot权限无效
刚才又看了一下Qt的文档,private slot是指只有对象自己才有权限来连接信号到这个private slot上。
不过我刚做了试验,在main函数里把对象a的信号连接到对象b的private slot上,运行正常,private slot可以被正常调用。我猜是因为Qt使用函数指针来保存slot,因此可以不受存取权限的限制。
离线hau19820906
只看该作者 3楼 发表于: 2006-07-13
看你用什么信号和槽相联了,槽就是一函数,不想让信号随便连就私有啊
离线shiroki

只看该作者 4楼 发表于: 2006-07-13
问了个专家,据说private...的关键字就是个摆设, 只是提醒coder怎么去用这个slot, 没啥实际作用。 不过还据说version4里把这几个关键字的功能实现了。 不知道有没有人试过
--
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
离线stylev
只看该作者 5楼 发表于: 2006-07-14
不管slots被修饰为private或protected也好,都会被看成public权限...

即别的类同样可以调用这个类的slots
MSN: ediwon@msn.com
QQ Group: 24678212
----------------------------
离线hechuan
只看该作者 6楼 发表于: 2006-07-18
同意楼上的看法,我在Qt3里试过了,确实槽的private权限没有什么用处。
快速回复
限100 字节
 
上一个 下一个