J'essaie de garder une trace du signal textChanged() pour une poignée de QTextEdits. Je veux faire la même chose indépendamment de l'édition de texte qui émet le signal: décochez sa case associée dans un QListWidget s'il devient vide et laissez-la cochée sinon. La fonction que j'ai donc pour est la suivante:Connexion de plusieurs signaux à un seul emplacement dans Qt
void MainWindow::changed()
{
QString tempStr = ui->hNMRedit->toPlainText();
if(tempStr != "")
{
ui->checkList->item(0)->setCheckState(Qt::Checked);
}
else
{
ui->checkList->item(0)->setCheckState(Qt::Unchecked);
}
}
Avec l'approche actuelle, je dois faire une fonction comme celui-ci pour chaque QTextEdit; chaque fonction contenant un code pratiquement identique. Si je stockais chacune des modifications de texte dans un tableau (afin que je puisse trouver leur index associé dans le QListWidget), serais-je possible d'avoir un slot comme ça? Est-ce possible ou devrais-je simplement créer un emplacement distinct pour chaque modification de texte? S'il vous plaît laissez-moi savoir si d'autres précisions sont nécessaires! Enfin, je pense que la seule différence significative entre QLineEdits et QTextEdits est la taille par défaut. En faveur de la cohérence, devrais-je simplement utiliser un de ces objets dans mon interface utilisateur?
Merci !!!
Je suis d'accord sur QSignalMapper ... Cela facilitera grandement la gestion basée sur les baies. –
Ça sonne bien, je vais essayer le QSignalMapper. La seule partie difficile est la QCheckBoxes sont dans un QListWidget ... Je ne sais pas si je serai capable de connecter le slot vérifié comme vous l'avez décrit. Pensez-vous toujours qu'il sera capable de travailler? Il y a aussi quelques QLineEdits que je voudrais connecter au slot unique dont j'ai parlé plus haut. Pour plus de commodité, devrais-je les changer tous en QTextEdits (pour pouvoir les stocker dans le tableau et utiliser la même fonction sur l'objet reçu)? –
'QCheckBoxes': Oui, soit au moment de la création, soit après, vous avez accès à eux. Si vous tentez d'y accéder après les avoir placés dans la liste, vous devez soit conserver le pointeur, soit le lancer après avoir appelé l'une des fonctions de l'objet get. 'QLineEdits': vous ne devriez pas avoir à les stocker en tant que pointeurs' QWidget' et à les exclure lorsque vous avez besoin de fonctionnalités spécifiques. –