有人可以解释为什么我要在qt公共广告位而不是public
信号中创建?
答案 0 :(得分:4)
插槽是正常功能,可以是公共的,私有的或受保护的。
最终由'moc'程序生成时,信号始终受到保护。
但请注意(来自某些old Qt 4.7 docs):
由于插槽是普通的成员函数,因此它们在直接调用时遵循正常的C ++规则。但是,作为插槽,它们可以通过信号插槽连接由任何组件调用,而不管其访问级别如何。这意味着从任意类的实例发出的信号可能导致在不相关的类的实例中调用私有槽。
答案 1 :(得分:1)
SLOTS
是可以是public,private或protected的函数。函数可以从任何地方调用,即在类中或类外部调用。但是SIGNALS
就像事件一样,应该在该类或继承的类,因此SIGNALS
始终受到保护。