2016-04-25 24 views
1

Ich versuche, ein QWidget in einem QTabWidget lokalisiert zu zentrieren. Wenn man die Größe des inneren QWidgets ändert, möchte ich, dass es immer in der Mitte platziert wird.Zentrieren eines Widget in einem anderen Widget in Qt

Wie kann ich das tun?

+1

hinzufügen Abstandshalter an allen vier Seiten um es in den Layout –

+1

@NicolasHolthaus gibt es keine Layouts, die eine solche Kombination zu unterstützen. Es reicht aus, 2 Abstandshalter hinzuzufügen und die Widget-Größe der Ruhedimension auf Maximum zu setzen. Oder kombinieren Sie vertikale + horizontale Layout mit 4 Leerzeichen, wie Sie vorgeschlagen :) –

+1

@SaZ Es gibt ein Raster-Layout in Qt, die diese Funktion bieten. – Paraboloid87

Antwort

5

1/Erstellen Sie ein Layout in Ihrem QTabWidget: a QBoxLayout zum Beispiel.

2/Stellen Sie Ihre QWidget darin, mit der gewünschten Ausrichtung.

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

Genau! Jedes Layout wird ausreichen. –