dans QT Designer Je crée plusieurs étiquettes (par exemple): alors si je veux les cacher, je fais cela: P> QLabel* my_label[5];
4 Réponses :
Je n'ai rien vu dans qtdesigner pour faire cela, mais il y a un couple de moyens relativement faciles d'obtenir ce comportement.
1) stocke simplement les pointeurs My_Labelx (de QTDesigner) dans un tableau (ou mieux, un qvecteur): p> alors vous pouvez itérer via le qvecteur. p> Il y a un peu de configuration nécessaire en termes d'ajouter toutes les étiquettes au qvecteur, mais sur le côté plus, vous ne faites qu'une fois. p> 2) En fonction de la mise en page de votre interface graphique, vous pouvez avoir toutes vos étiquettes être des enfants d'un objet de conteneur et itérer à travers les enfants p> p>
Au lieu de créer une matrice explicite, vous pourrez peut-être nommer vos widgets à l'aide d'un schéma particulier, puis utiliser QObject :: FindChildRen () sur le widget parent Pour obtenir une liste des widgets que vous êtes après. P>
Si vous voulez seulement masquer les widgets, vous pouvez mettre tous les widgets que vous souhaitez masquer dans une invisible QFRAME (SET Si vous souhaitez masquer des contrôles afin que vous puissiez simuler un interface utilisateur de type assistant, vous voudrez peut-être vérifier dans Qstackedwidget . P> FRAMESHAPE CODE> TO
NOFRAME CODE>) et les masque tout en appelant
SETVISIBLE (FALSE) CODE> sur le
Qframe code>. Cela peut entraîner des effets secondaires indésirables avec des mises en page afin que vous puissiez avoir à modifier certains paramètres de stratégie de taille. P>
Arnold: Merci de votre réponse! Mais compte tenu de mes connaissances de base QT, j'ai finalement fait une mission directe. D'ailleurs, je devais faire plus que simplement cacher. Quoi qu'il en soit, j'apprécie vraiment votre aide.
J'ai pensé que la cachette n'était pas votre seul objectif :) Vous pouvez mettre votre propre réponse et l'accepter. Cela évitera les résultats de la recherche pour les questions sans réponse.
Je viens d'essayer, cependant, depuis que je suis moins de 100 réputation, je dois attendre trois heures de plus pour le faire. Merci encore!
Enfin j'ai décidé de faire une mission directe: puis je peux faire par exemple: p> puis j'ai pu effectuer itérations. Je pense que ce n'est pas le moyen le plus propre de le faire, mais donné que mes connaissances fondamentales de qt sont ok pour moi. P> Merci beaucoup pour vos réponses et votre soutien! C'est un excellent site avec des gens formidables. P> p>
J'ai une autre solution de contournement sale pour cela:
dans le fichier d'en-tête p> dans le fichier source p> // constructor
ui->setupUi(this);
labels = new QLabel*[10]{ui->label_0, ui->label_1, ui->label_2, ui->label_3,
ui->label_4, ui->label_5, ui->label_6,
ui->label_7, ui->label_8, ui->label_9};
Veuillez placer des réponses dans les blocs de réponse. Plus tard, vous pouvez accepter votre propre réponse. Voir aussi Comment accepter un travail de réponse?