2016-04-25 4 views
1

Я пытаюсь центрировать QWidget, локализованный внутри QTabWidget. Когда вы меняете размер внутреннего QWidget, я хочу, чтобы он всегда был помещен в центр.Центрирование виджета внутри другого виджета в Qt

Как я могу это сделать?

+1

Добавить распорки на всех четырех сторон вокруг него в макете –

+1

@NicolasHolthaus нет макетов, которые поддерживают такую ​​комбинацию. Достаточно добавить 2 спейсера и установить максимальную политику размера виджета измерения отдыха. Или объедините вертикальную + горизонтальную компоновку с 4 пробелами, как вы предположили :) –

+1

@SaZ В Qt есть сетка, которая обеспечивает эту функцию. – Paraboloid87

ответ

5

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 
+1

Точно! Любой макет будет делать. –

Смежные вопросы