2010-08-05 5 views

Répondre

4

Les emplacements sont des fonctions normales et peuvent être publics, privés ou protégés.

Les signaux sont toujours protégés lorsqu'ils sont générés par le programme 'moc'.

Mais notez ceci (de quelques old Qt 4.1 docs):

Depuis les créneaux horaires sont les fonctions membres normales, ils suivent les règles C++ normales lorsqu'il est appelé directement. Cependant, en tant que slots, ils peuvent être appelés par n'importe quel composant, quel que soit son niveau d'accès, via une connexion slot-signal. Cela signifie qu'un signal émis par une instance d'une classe arbitraire peut provoquer l'invocation d'un emplacement privé dans une instance d'une classe non liée.

+0

merci j'ai compris une autre petite question Si j'ai par exemple deux signaux dans ma classe, comment qt sait lequel pourrait être appelé? (parce que j'ai compris que je n'ai pas besoin d'implémenter des signaux) – lindows

+0

Les signaux ne sont pas appelés, ils sont 'émis' en utilisant le mot clé 'emit'. Les slots auxquels ils sont connectés via 'QObject :: connect' sont automatiquement appelés quand cela arrive. – sje397

+0

ok, dans ce tutoriel 'http: // doc.trolltech.com/4.3/tutorial-t7.html', ils n'utilisent pas le mot-clé' emit' mais ils utilisent le signal personnalisé 'valueChanged', j'ai essayé de le changer pour Signal "vChanged" et reçu le même effet, il est donc difficile de comprendre si je par exemple ajouter un signal de plus sans implémentation (parce que j'ai compris que l'implémentation est faite dans un fichier méta-objet) ce programme fonctionnera-t-il? – lindows

1

SLOTS sont des fonctions qui peuvent être publiques, privées ou protected.Functions sont appelés de ne importe où par exemple avec de la classe ou en dehors du class.But SIGNALS sont comme des événements et il devrait être émis au sein de la classe ou de la classe héritée donc SIGNALS sont toujours protégés.

Questions connexes