如何重现:创建一个新的Qt Widgets应用程序,并用以下内容替换其mainwindow.cpp
:古怪的伸缩动作里面
#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;
}
你建立项目后,所产生的应用程序的窗口将拒绝被垂直缩水下面这个样子:
我的问题:我如何摆脱上方和下方的按钮空闲空间的?我尝试操纵尺寸提示,尺寸政策以及其他所有与此相关的内容,但效果不理想。影响它的唯一方法似乎是硬编码最小高度,这在实践中几乎没有用。
你想如何显示小部件? – eyllanesc
@eyllanesc没有按钮上方和下方的空白空间。我不明白它来自哪里 - 起初我认为这些是可配置的边距,但不是。 – sigil
如果MainWindow的高度超过按钮的高度加上QScrollArea的滑块的高度,应该如何看待它? – eyllanesc