2010-11-04 7 views
0

Salut j'ai un problème, dans mon programme j'ai plusieurs QLabel et QTextbrowser, parfois, je veux que chacun d'eux affiche quelque chose, mais je veux le faire par le biais d'une autre fonction appelée NewMessage. Ainsi, NewMessage recevra un message de QLabel ou QTextbrowser, et les traitera, puis l'affichera. Mais le problème est que je ne veux pas avoir de fonction de surcharge pour QLabel et QTextBrowser, je veux seulement 1 fonction NewMessage qui peut gérer le transfert de message par QLabel ou QTextBrowser (les objets doivent aussi se transmettre), comment dois-je fais ça? Cela a-t-il quelque chose à voir avec quelque chose appelé casting? Je vous remercie ! Je ne suis pas sûr de comprendre parfaitement ce que vous voulez réaliser.Une seule fonction qui gère plusieurs QObjects

+0

Que voulez-vous dire par « NewMessage recevra un message de QLabel ou QTextBrowser »? Est-ce que 'NewMessage' sera connecté aux signaux émis par' QLabel' ou 'QTextBrowser'? Est-ce que 'NewMessage' affiche quelque chose? –

+0

Oui, NewMessage affiche tout ce que l'objet doit afficher, comme une fonction pour gérer le travail d'affichage, et bien sûr pour traiter d'autres choses. Je ne suis pas sûr de savoir comment passer dans les deux objets différents (QLabel et QTextBrowser), peut-être émettre un signal est une bonne idée, mais comment puis-je afficher quelque chose dans l'interface utilisateur en utilisant l'objet alors? Par exemple, peut-être quelque part un appel d'objet QLabel labelABC émet un signal, dans le slot NewMessage peut-être que je ferais sender() -> objectName, et je peux obtenir le nom labelABC. mais je veux faire quelque chose comme labelABC-> setText ("..."), comment puis-je faire ça? – Darren

Répondre

Questions connexes