Comment quelqu'un peut-il référencer un QObject en utilisant un QString? J'ai essayé d'accomplir ceci de plusieurs manières différentes basées sur la documentation de Qt et des réponses semblables sur ce site en vain. Un nom d'objet est juste un QString, mais l'utiliser de cette façon ne fonctionne pas. J'ai également essayé d'utiliser findChildren, mais je ne comprends pas complètement la documentation sur cette fonction. Le résultat final est, j'ai une liste de QLabels dans ma boîte de dialogue pour laquelle je veux enregistrer le texte. J'ai utilisé la fonction saveLine ailleurs avec succès, mais j'obtiens les erreurs ci-dessus en essayant de référencer l'objet. Toute recommandation serait très utile. MISE À JOUR: J'ai réussi à corriger le problème pour qu'il ne renvoie aucune erreur, mais il ne renvoie toujours aucun résultat, donc je suppose que la question est plus ciblée maintenant à la méthode findChildren et comment la chaîne QString se traduit par un objectName. Voici le code mis à jour, mais il ne renvoie toujours aucun résultat.Comment référencer un objectName en utilisant un QString?
QList<QLabel *> labels = this->findChildren<QLabel *>("mylabel_");
for(int i = 0; i < labels.count(); i++)
{
QString labelText = labels.at(i)->text();
functions::saveLine(&nameFile, labelText);
}
Donc, si je pouvais trouver toutes les étiquettes qui commencent par objectName = « mylabel_ », et les mettre dans un QList, ce serait en mesure de tirer le texte d'eux et de le transmettre à la Savéline fonction que j'ai implémentée. Cependant, je ne sais pas pourquoi il ne trouve pas les étiquettes basées sur QString que je mets en argument pour findChildren.
Tout ne doit pas commencer par 'ui->'. Variables non locales – LogicStuff
Votre liste contient-elle des étiquettes après l'exécution de findChildren? – vincent
En outre, il serait utile de voir le code de dialogue. – vincent