Bonjour à tous,
Mon problème est le suivant.
J'ai un QTabWidget, et dans un de ses onglets je voudrais 3 éléments :
- un QLabel au centre en haut du layout
- une liste de bouton à gauche
- une image a droite
La liste de bouton doit être scrollable car c'est l'utilisateur qui indiquera les boutons affiché par la suite. On a donc un nombre inconnu de bouton (et donc si trop peu, pas de scrollbar).
J'ai donc opter pour un QGridLayout pour placer mes éléments dans mon onglet.
Le problème que j'ai est que si le QLabel s'affiche là ou je le souhaite, ce n'est pas le cas du reste. Mon QScrollArea prend l'intégralité du reste du layout et de ce fait mon image ne s'affiche pas, et ce quelques soit le nombre d'élement dans le QScrollArea. Dans le cas où je met l'ajout de la ScrollArea à ma grid en commentaire, l'image s'affiche parfaitement.
Voici mon code :
tab est mon QTabWidget déclaré dans mon .h
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
26
27
28
29
30
31
32
33
34
35 QWidget* monTab = new QWidget; QGridLayout* grid = new QGridLayout; QLabel* lab = new QLabel; lab->setText("Gestion des ambiances"); QScrollArea* area = new QScrollArea; QWidget* w = new QWidget; QVBoxLayout* box = new QVBoxLayout; for(int i = 1; i < 21; i++) { QPushButton* button = new QPushButton; button->setText("Test " + QString::number(i)); box->addWidget(button); } w->setLayout(box); area->setWidget(w); QStringList calcsAmbiance; ImageChateau* imageAmbiance = new ImageChateau(this, "/home/anthony/Projets_Qt/test.png", calcsAmbiance); grid->addWidget(lab, 0, 0, 1, 2, Qt::AlignCenter); grid->addWidget(area, 1, 0); grid->addWidget(imageAmbiance, 1, 1); monTab->setLayout(grid); tab->addTab(monTab, "Ambiance 2");
Je vous remercie de votre aide.
Partager