Bonjour

Je cherchais à afficher / masquer dynamiquement des éléments d'un
QFormLayout. Quelle est la bonne méthode ?

Exemple : construction du formLayout :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
    name = new QLabel("");
    champ1 = new QLabel("");
    champ2 = new QLabel("");
 
    formLayout = new QFormLayout();
    formLayout->addRow(tr("Name:"), name);
    formLayout->addRow(tr("Champ1:"), champ1);
    formLayout->addRow(tr("Champ2:"), champ2);
J'ai implémenté quelque chose du genre :
Sur clic d'un bouton :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
  champ1->setVisible(false);   // cacher le champ
  formLayout->labelForField(champ1)->setVisible(false); // cacher l'étiquette
Le résultat obtenu est bof bof. Si le QLabel et son label sont bien masqués, il subsiste les éléments de mise en en page et typiquement l'espacement entre
deux lignes n'est pas préservé à l'emplacement de la ligne masquée.
En plus le code est moche.

J'ai cherché qq chose dans le style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
formLayout->HideRow (i);
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
formLayout-HideRowForField(champ1);>
mais je n'ai rien trouvé d'équivalent.
Une idée ?

Merci
Henri