Bonjour
Je cherchais à afficher / masquer dynamiquement des éléments d'un
QFormLayout. Quelle est la bonne méthode ?
Exemple : construction du formLayout :
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 :
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 :
ou
formLayout-HideRowForField(champ1);>
mais je n'ai rien trouvé d'équivalent.
Une idée ?
Merci
Henri
Partager