« Programmation Qt/Les widgets » : différence entre les versions
Contenu supprimé Contenu ajouté
ajout des widgets conteneurs et de QFrame |
→Les widgets conteneurs : ajout de QTabWidget |
||
Ligne 190 :
</syntaxhighlight>Ensuite, pour les widgets enfants, un <code>setLayout(monLayout);</code> qui contient lui-même des widgets.
=== <code>QTabWidget</code> : un conteneur à onglets ===
Un <code>QTabWidget</code> est un conteneur à onglets. Il ne peut y avoir qu'un seul widget par onglets. Heureusement, un widget peut en contenir un autre, autrement dit vous pouvez mettre un [[Programmation Qt/Le positionnement des widgets|layout]] qui contient tous les widgets que vous voulez.<syntaxhighlight lang="c++" line="1" start="1">
QTabWidget *onglets = new QTabWidget();
QWidget *pageAccueil = new QWidget();
QLabel *bienvenue = new QLabel("Bienvenue à tous");
QPushButton *boutonQuitter = new QPushButton("Quitter");
this::connect(boutonQuitter, SIGNAL(clicked()), qApp, SLOT(quit()));
QVBoxLayout *layout = new QVBoxLayout();
layout->addWidget(bienvenue);
layout->addWidget(boutonQuitter);
pageAccueil->setLayout(layout);
QLabel *image = new QLabel();
image->setPixmap(QPixmap("monImage.png"));
onglets->addTab(pageAccueil, "Accueil");
onglets->addTab(image, "Image");
</syntaxhighlight>Ce code affiche :
* un onglet Accueil qui contient le texte de bienvenue et le bouton Quitter.
* un onglet Image qui contient une image
Vous pouvez aussi mettre des <code>QTabWidget</code> dans des <code>QTabWidget</code> :<syntaxhighlight lang="c++" line="1" start="1">
QTabWidget *univers = new QTabWidget();
QTabWidget *systemeSolaire = new QTabWidget();
QWidget *pageSoleil = new QWidget();
QWidget *pageMercure = new QWidget();
QWidget *pageEtc = new QWidget();
systemeSolaire->addTab(pageSoleil, "Soleil");
systemeSolaire->addTab(pageMercure, "Mercure");
systemeSolaire->addTab(pageEtc, "...");
univers->addTab(systemeSolaire, "Système solaire")
</syntaxhighlight>{{AutoCat}}
|