Я пытаюсь центрировать QWidget, локализованный внутри QTabWidget. Когда вы меняете размер внутреннего QWidget, я хочу, чтобы он всегда был помещен в центр.Центрирование виджета внутри другого виджета в Qt
Как я могу это сделать?
Я пытаюсь центрировать QWidget, локализованный внутри QTabWidget. Когда вы меняете размер внутреннего QWidget, я хочу, чтобы он всегда был помещен в центр.Центрирование виджета внутри другого виджета в Qt
Как я могу это сделать?
1/Создать макет в вашем QTabWidget
: a QBoxLayout
например.
2/Установите в нем QWidget
с желаемым выравниванием.
QTabWidget* tabwid = new QTabWidget(this);
QBoxLayout* layout = new QBoxLayout(QBoxLayout::LeftToRight, tabwid);
//if you want to set margins : layout->setContentsMargins(5, 5, 5, 5);
QWidget* widget = new QWidget();
layout->addWidget(widget, Qt::AlignCenter); // center alignment
Точно! Любой макет будет делать. –
Добавить распорки на всех четырех сторон вокруг него в макете –
@NicolasHolthaus нет макетов, которые поддерживают такую комбинацию. Достаточно добавить 2 спейсера и установить максимальную политику размера виджета измерения отдыха. Или объедините вертикальную + горизонтальную компоновку с 4 пробелами, как вы предположили :) –
@SaZ В Qt есть сетка, которая обеспечивает эту функцию. – Paraboloid87