Bonjour à tous,

je ne parviens pas à créer la fenêtre suivante:



Quand on redimensionne la fenêtre je voudrais que le widget blanc se redimensionne aussi et que les boutons à gauche ne bouge pas de place.

Voici comment j'ai procédés:

- J'ai un QVBoxLayout qui contient un QSpacerItem et un QHBoxLayout
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
m_layoutV = new QVBoxLayout();
    m_layoutV->setAlignment(Qt::AlignTop);
    m_layoutV->setSpacing(0);
    m_layoutV->setMargin(0);
    m_layoutV->addItem(m_spacer);
    m_layoutV->addLayout(m_LayoutH);
- Le spacer permet de laisser la place pour la bannière en haut de la fenêtre

- Dans le QHBoxLayout (m_LayoutH) j'ai un QVBoxLayout et mon widget blanc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
m_LayoutH = new QHBoxLayout();
    m_LayoutH->setAlignment(Qt::AlignLeft);
    m_LayoutH->setMargin(0);
    m_LayoutH->setSpacing(0);
    m_LayoutH->addLayout(m_layoutV2);
    m_LayoutH->addWidget(m_window);
- Le QVBoxLayout (m_layoutV2) contient les boutons.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
m_layoutV2 = new QVBoxLayout();
    m_layoutV2->setAlignment(Qt::AlignLeft | Qt::AlignTop);
    m_layoutV2->addWidget(m_buttonCleaner);
    m_layoutV2->addWidget(m_buttonRegistry);
- Pour finir je définit mon widget central:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
m_centralWidget = new QWidget();
    m_centralWidget->setLayout(m_layoutV);
    this->setCentralWidget(m_centralWidget);
- La bannière se redimensionne comme suite:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
void MainWindow::resizeEvent(QResizeEvent *event)
{
    Q_UNUSED(event);
 
    m_banner->resize(width(), 57);
    m_banner->setScaledContents(true);
}
Maintenant, comment je peux garder mes boutons (m_layoutV2) en haut à gauche et mon widget blanc se redimensionne en fonction de la fenêtre ?

Le redimensionnement de la fenêtre devrais donner cela:


Merci par avance,

Bonne journée.