Я хочу иметь QTextEdit
а также QPushButton
в QBoxLayout
, где кнопка занимает столько маленького размера, сколько нужно, а textedit все остальное.
До сих пор я придумал это.
QPushButton* button = new QPushButton();
button->setText("Button");
QTextEdit* textedit = new QTextEdit();
QBoxLayout* boxLayout = new QBoxLayout(QBoxLayout::TopToBottom);
boxLayout->addWidget(textedit, 0, Qt::AlignTop);
boxLayout->addWidget(button, 0, Qt::AlignLeading);
mUI->centralWidget->setLayout(boxLayout);
Между текстом и кнопкой все еще есть отступ. Как я могу удалить это?
Попробуй удалить Qt::AlignTop
:
QPushButton* button = new QPushButton();
button->setText("Button");
QTextEdit* textedit = new QTextEdit();
QBoxLayout* boxLayout = new QBoxLayout(QBoxLayout::TopToBottom);
boxLayout->addWidget(textedit, 0);
boxLayout->addWidget(button, 0, Qt::AlignLeading);
mUI->centralWidget->setLayout(boxLayout);
У меня сработало нормально
Использовать setStretch
функция.
boxLayout->setStretch(0, 1);
boxLayout->setStretch(1, 0);
РЕДАКТИРОВАТЬ
Использовать QVBoxLayout
вместо:
QPushButton* button = new QPushButton();
button->setText("Button");
QTextEdit* textedit = new QTextEdit();
QVBoxLayout* boxLayout = new QVBoxLayout();
boxLayout->addWidget(textedit);
boxLayout->addWidget(button);
boxLayout->setStretch(0, 1);
boxLayout->setStretch(1, 0);
mUI->centralWidget->setLayout(boxLayout);