Elemente auf ein QDockWidget packen mit GridLayout

Verschiedenes zu Qt
Antworten
timo_81
Beiträge: 20
Registriert: 6. September 2008 10:08

Elemente auf ein QDockWidget packen mit GridLayout

Beitrag von timo_81 »

Hey,
seit meinem letzen Posting habe ich mir ein Buch zu Qt geholt und übe fleißig. Ich habe nun zu Testzwecken ein Mainwindow und ein Dockwidget
erstellt. Beides wird auch angezeigt.

Jetzt wollte ich auf dieses dockWidget Button und Co. packen...
die Button und Co sind erstellt, das Layout auch.
Wie kann ich das nun an QDockWidget weitergeben?

Hier mal mein Ansatz:

Code: Alles auswählen



#include "office.h"
#include <QLabel>
#include <QDockWidget>
#include <QListView>
#include <QPushButton>
#include <QlineEdit>
#include <QComboBox>
#include <QGridLayout>


MainWindow :: MainWindow()
{
	//Fenstertitel & Größe
	setWindowTitle(tr("Rechnung 1.0"));
	resize(800,600);
	
	QLabel* label = new QLabel(tr("Zentral-Widget"));
	setCentralWidget(label);
	label->setAlignment(Qt::AlignCenter);
	
	//Dockwindow links
	QDockWidget *dockWindow =new QDockWidget;
	dockWindow->setAllowedAreas(Qt::LeftDockWidgetArea);
	dockWindow->setObjectName("dockWindow");
	dockWindow->setWindowTitle("Optionen");
	addDockWidget(Qt::LeftDockWidgetArea,dockWindow);
	
	
	//Labels
	QLabel* adressenLabel =new QLabel;
	QLabel* heizungLabel =new QLabel;
	QLabel* sanitaerLabel =new QLabel;
	QLabel* pauschalLabel =new QLabel;
	QLabel* mengeLabel =new QLabel;
	
	//Labels beschriften
	adressenLabel->setText("Adresse:");
	heizungLabel->setText("Heizung:");
	sanitaerLabel->setText("Sanitaer:");
	pauschalLabel->setText("Pauschal:");
	mengeLabel->setText("lfm:");
	
	//ComboBox
	QComboBox* adressenCombo =new QComboBox;
	QComboBox* heizungCombo =new QComboBox;
	QComboBox* sanitaerCombo =new QComboBox;
	QComboBox* pauschalCombo =new QComboBox;
	
	//Knöpfe
	QPushButton* adressenButton =new QPushButton(tr("Ok"));
	QPushButton* heizungButton =new QPushButton(tr("Ok"));
	QPushButton* sanitaerButton =new QPushButton(tr("Ok"));
	QPushButton* pauschalButton =new QPushButton(tr("Ok"));
	
	//Eingabefelder
	QLineEdit* heizungEdit =new QLineEdit;
	QLineEdit* sanitaerEdit =new QLineEdit;
	QLineEdit* pauschalEdit =new QLineEdit;
	
	
	
	
	//Layout
	QGridLayout* mainLayout =new QGridLayout(dockWindow);
	mainLayout->addWidget(adressenLabel,0,0);
	mainLayout->addWidget(adressenCombo,1,0);
	mainLayout->addWidget(adressenButton,1,1);
	
	mainLayout->addWidget(heizungLabel,2,0);
	mainLayout->addWidget(heizungCombo,3,0);
	mainLayout->addWidget(mengeLabel,3,1);
	mainLayout->addWidget(heizungEdit,3,2);
	mainLayout->addWidget(heizungButton,3,3);
	
	mainLayout->addWidget(sanitaerLabel,4,0);
	mainLayout->addWidget(sanitaerCombo,5,0);
	mainLayout->addWidget(mengeLabel,5,1);
	mainLayout->addWidget(sanitaerEdit,5,2);
	mainLayout->addWidget(sanitaerButton,5,3);
	
	mainLayout->addWidget(pauschalLabel,6,0);
	mainLayout->addWidget(heizungCombo,7,0);
	mainLayout->addWidget(heizungButton,7,1);
	
	    	
	//**************************************************************************************************
	//*
	//*diese Elemente sollten nun in dem obigen Layout auf dem dockWidget angezeigt werden...aber wie?
	//*
	//***************************************************************************************************


dei eingebunde ".h" stelt nur den Konstruktor für Mainwindow zur Verfügung. Kann allerdings auch noch die main.cpp und die office.h posten wenn nötig.

Mir ist niht klar wie ich die im Gridlayout auf das Dockwidget krieg..
Gruß und vielen Dank -Timo-
Antworten