公共时段但不是qt中的信号

时间:2010-08-05 07:20:54

标签: qt

有人可以解释为什么我要在qt公共广告位而不是public信号中创建?

2 个答案:

答案 0 :(得分:4)

插槽是正常功能,可以是公共的,私有的或受保护的。

最终由'moc'程序生成时,信号始终受到保护。

但请注意(来自某些old Qt 4.7 docs):

  

由于插槽是普通的成员函数,因此它们在直接调用时遵循正常的C ++规则。但是,作为插槽,它们可以通过信号插槽连接由任何组件调用,而不管其访问级别如何。这意味着从任意类的实例发出的信号可能导致在不相关的类的实例中调用私有槽。

答案 1 :(得分:1)

SLOTS是可以是public,private或protected的函数。函数可以从任何地方调用,即在类中或类外部调用。但是SIGNALS就像事件一样,应该在该类或继承的类,因此SIGNALS始终受到保护。