публичные слоты, но не сигналы в QT - PullRequest
1 голос
/ 05 августа 2010

Может кто-нибудь объяснить, почему я создаю в открытых слотах qt, а не public сигналы?

Ответы [ 2 ]

4 голосов
/ 05 августа 2010

Слоты являются обычными функциями и могут быть общедоступными, частными или защищенными.

Сигналы всегда защищены, когда они генерируются программой moc.

Но обратите внимание на это (из некоторых старых документов Qt 4.7 ):

Поскольку слоты являются обычными функциями-членами, они следуют обычным правилам C ++ при непосредственном вызове. Однако, как слоты, они могут быть вызваны любым компонентом, независимо от его уровня доступа, через соединение сигнальных слотов. Это означает, что сигнал, исходящий от экземпляра произвольного класса, может привести к тому, что частный слот будет вызываться в экземпляре несвязанного класса.

1 голос
/ 05 августа 2010

SLOTS - это функции, которые могут быть публичными, частными или защищенными. Функции вызываются из любого места, т. Е. В классе или вне класса. Но SIGNALS подобны событиям, и их следует отправлять в классе или унаследованный класс, поэтому SIGNALS всегда защищены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...