簡體   English   中英

如何使用Qt減少小部件之間的距離和窗口大小?

[英]How to reduce distance between widgets and window size with Qt?

我目前所擁有的:

當前窗口

我想要的是:

想要的窗口

對於那些無法查看圖像的人; 小部件之間會以某種程度的余量分布。 我想讓它們盡可能的靠近。 如何將小部件緊密地擠壓在一起?

我已經嘗試過:
setFixedSize(sizeHint()); setSizeConstraint(QLayout::SetFixedSize); 在主窗口,布局和小部件對象上。 似乎沒有任何作用。

另外,我也將不勝感激:
(使標簽更靠近lineEdit)

我正在使用Windows和Qt 5.11.1(64位)。
窗口構造器代碼:

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
    widget = new QWidget();
    label = new QLabel(tr("Enter your name:"));
    nameLine = new QLineEdit;
    nameLine->setMinimumWidth(250);
    label->setBuddy(nameLine);

    okButton = new QPushButton (tr("Ok"));
    clearButton = new QPushButton (tr("Clear"));

    connect(okButton, SIGNAL(clicked()), this, SLOT(message()));
    connect(clearButton, SIGNAL(clicked()), this, SLOT(clear()));

    QGridLayout *grid = new QGridLayout;
    grid->addWidget(label,0,0);
    grid->addWidget(nameLine,1,0);
    grid->addWidget(okButton,0,1);
    grid->addWidget(clearButton,1,1);

    widget->setLayout(grid);

    setWindowTitle(tr("Leo v0.0"));
    setCentralWidget(widget);
}

一個可能的解決方案是使用addStretch()建立一個QVBoxLayout

QVBoxLayout *vlay = new QVBoxLayout;
QGridLayout *grid = new QGridLayout;
grid->addWidget(label, 0, 0);
grid->addWidget(nameLine, 1, 0);
grid->addWidget(okButton, 0, 1);
grid->addWidget(clearButton, 1, 1);
vlay->addLayout(grid);
vlay->addStretch();
widget->setLayout(vlay);
setCentralWidget(widget);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM