Ich habe eine Klasse, die von QMainWindow
erbt. Im Konstruktor, habe ich die Central Widget
zu NULL
und dann mehrere QDockWidgets
hinzufügen, um eine Benutzeroberfläche zu machen die consits von QDockWidgets
nur:QDockWidgets in QMainWindow in mehreren Spalten anordnen
UserWidget::UserWidget(QWidget * parent) : QMainWindow(parent)
{
this->setCentralWidget(NULL);
// create Widgets for User communication e.g. PushButtons etc.
// ...
dockWidget_ = new QDockWidget;
dockWidget->setAllowedAreas(Qt::AllDockWidgetAreas);
dockWidget->setWidget(userWidget_);
this->addDockWidget(Qt::RightDockWidgetArea);
Jetzt füge ich ein anderes QDockWidget aber statt Qt::RightDockWidgetArea
, wähle ich Qt::LeftDockWidgetArea
:
dockWidget_ = new QDockWidget;
dockWidget->setAllowedAreas(Qt::AllDockWidgetAreas);
dockWidget->setWidget(userWidget2_);
this->addDockWidget(Qt::LeftDockWidgetArea);
bis hierher ist das Aussehen meines Programms ähnlich wie diese:
Proceeding weiter mit Hinzufügen einer weiteren QDockWidget
:
dockWidget_ = new QDockWidget;
dockWidget->setAllowedAreas(Qt::AllDockWidgetAreas);
dockWidget->setWidget(userWidget3_);
this->addDockWidget(Qt::LeftDockWidgetArea /* or Qt::RightDockWidgetArea*/);
ich mit einem Bereich in der Mitte gespaltet Ende:
Aber ich mag das Layout in drei Spalten aufgeteilt , ähnlich zu:
Allerdings habe ich keinen geeigneten Weg gefunden, dies zu tun. Das Einstellen des Bereichs auf Qt::TopDockWidgetArea
oder Qt::BottomDockWidgetArea
liefert weder das gewünschte Verhalten. Ich würde wirklich jede Hilfe hier schätzen.