Comment reproduire: Créer un nouveau Qt Widgets Application et remplacer son mainwindow.cpp
ce qui suit:comportement Redimensionnement bizarre de QScrollArea avec QHBoxLayout intérieur
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QHBoxLayout>
#include <QScrollArea>
#include <QToolButton>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QScrollArea *scrollArea = new QScrollArea;
setCentralWidget(scrollArea);
QFrame *scrollWidget = new QFrame;
scrollArea->setWidget(scrollWidget);
scrollArea->setWidgetResizable(true);
QHBoxLayout *scrollLayout = new QHBoxLayout;
scrollWidget->setLayout(scrollLayout);
for(int i = 0; i < 10; ++i)
{
QToolButton *button = new QToolButton;
button->setText(QString(20, QChar('a' + i)));
scrollLayout->addWidget(button);
}
}
MainWindow::~MainWindow()
{
delete ui;
}
Après avoir créé le projet, la fenêtre de l'application résultant refusera d'être verticalement diminué en dessous de ce:
Ma question: Comment puis-je me débarrasser de l'espace vide au-dessus et en dessous des boutons? J'ai essayé de manipuler des conseils de taille, des politiques de taille, et tout le reste à distance pertinent, à aucun résultat satisfaisant. La seule façon de l'affecter semble être de coder en dur la hauteur minimale du widget QScrollArea
, ce qui n'est guère utile en pratique.
Comment voulez-vous que le widget soit affiché? – eyllanesc
@eyllanesc Sans l'espace vide directement au-dessus et au-dessous des boutons. Je ne comprends pas d'où il vient - au début, je pensais qu'il s'agissait de marges configurables, mais non. – sigil
Si la hauteur de MainWindow dépasse la hauteur du bouton plus la hauteur des curseurs de QScrollArea, comment doit-il être vu? – eyllanesc