Bonjour,
Programmant sous QtCreator, je souhaite faire en sorte que l'utilisateur puisse sélectionner, dans un premier temps, un seul répertoire.
Puis, si nécessaire, il peut cliquer sur un bouton afin d'ajouter un bouton et un champs permettant l'affichage du second répertoire choisie.
Cependant, et c'est là que viens ma question, si l'utilisateur ajoute assez de champs pour que ceux-ci viennent à se "cacher" en dehors du Frame, ou encore à venir chevaucher les autres frames,
je souhaiterais qu'une barre de défilement s'affiche permettant de descendre vers le contenu caché.
J'ai donc essayé d'insérer mes éléments dans un QScrollArea, et j'espérais qu'il détecterait seul lorsque le contenu dépasse de son cadre.
Cependant, aucune barre de défilement n'apparait et je ne peut pas accéder au contenu caché.
J'ai essayé d'utiliser ui->scrollArea->setWidget() et setLayout(), ainsi que ui->scrollAreaWidgetContent mais sans succès.
Voici mon ihm:
Et voici le code qui est lié au bouton "+":
Au passage, je n'arrive pas à ajouter des boutons/lineEdit de façon dynamique (ils ne s'affiche pas et la connection signal/slot de ne se fait pas). Est-ce lié au fait que je souhaite les créer dans l'espace de mon QScrollArea ? Faut-il appeler une méthode du genre update() pour intégrer ces nouveaux bouton/lineEdit au QScrollArea ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 nbrBaseInstallDir++; //On Descend le Frame Inf. de la partie Obligatoire int posYFrameInfOblig = ui->frameChpsObligInf->y(); ui->frameChpsObligInf->move(10, posYFrameInfOblig+30); //On Descend le bouton + int posYBtnAdd = ui->pushButton->y(); ui->pushButton->move(50, posYBtnAdd+30); //On crée un nouveau bouton "Rechercher..." int newPosYBtnAdd = ui->pushButton->y(); //On se base sur le bouton + pour placer notre nouveau bouton de recherche QPushButton *newPushButtonBaseInstallRep = new QPushButton("Rechercher...", this); newPushButtonBaseInstallRep->setGeometry(10, newPosYBtnAdd-30, 81, 21); //On crée un nouveau lineEdit pour le nouveau bouton de recherche int posYNewBtnSrch = newPushButtonBaseInstallRep->y(); //On se base sur notre nouveau bouton pour placer le nouveau lineEdit QLineEdit *newLineEditBaseInstallRep = new QLineEdit("", this); newLineEditBaseInstallRep->setGeometry(100, posYNewBtnSrch, 311, 21); ui->scrollArea->setWidget(ui->frameChpsObligInf); /* //Association des signaux/slots QObject::connect(newPushButtonBaseInstallRep, SIGNAL(clicked()), this, SLOT(grabDirPath())); newLineEditBaseInstallRep->setText(sndBaseInstallDir); */
Partager