Seite 1 von 1

Wie Layout zu MainWindow hinzufügen ?

Verfasst: 16. Juli 2007 22:54
von pospiech
Ich habe in den Konstruktor von MainWindow folgendes geschrieben

Code: Alles auswählen

	buttonShowOutput = new QPushButton("Show Output");
	buttonCloseOutput = new QPushButton("Close Output");

	layoutHorOutputButtons = new QHBoxLayout; 
	layoutHorOutputButtons->addWidget(buttonShowOutput);
	layoutHorOutputButtons->addWidget(buttonCloseOutput);	

	layoutHorMain = new QHBoxLayout; 
	layoutHorMain->addLayout(layoutHorOutputButtons);
	setLayout(layoutHorMain);
aber das bringt mit nur die Fehlermeldung
QWidget::setLayout: Attempting to add QLayout "" to MainWindow "", which already has a layout
was müsste ich anders machen?

Matthias

Verfasst: 17. Juli 2007 00:01
von NoobSaibot
da das mainwindow bereits über ein layout verfügt, brauchst du nur noch dem vorhandenem layout dein layout hinzuzufügen

Code: Alles auswählen

layout()->addLayout( meinLayout )

Verfasst: 18. Juli 2007 22:18
von pospiech
NoobSaibot hat geschrieben:da das mainwindow bereits über ein layout verfügt, brauchst du nur noch dem vorhandenem layout dein layout hinzuzufügen

Code: Alles auswählen

layout()->addLayout( meinLayout )
Das geht so nicht:

Code: Alles auswählen

	setupUi(this);

	buttonShowOutput = new QPushButton("Show Output");
	buttonCloseOutput = new QPushButton("Close Output");
	
	layoutHorOutputButtons = new QHBoxLayout; 
	layoutHorOutputButtons->addWidget(buttonShowOutput);
	layoutHorOutputButtons->addWidget(buttonCloseOutput);	

	layoutHorMain = new QHBoxLayout; 
	layoutHorMain->addLayout(layoutHorOutputButtons);
	layout()->addLayout(layoutHorMain);
liefert
.\MainWindow.cpp(20) : error C2039: 'addLayout': Ist kein Element von 'QLayout'
c:\programme\qt4\include\qtgui\../../src/gui/kernel/qlayout.h(69): Siehe Deklaration von 'QLayout'
Matthias

Verfasst: 18. Juli 2007 22:55
von pospiech
Was allerdings geht ist

Code: Alles auswählen

m_centralwidget->setLayout(layoutHorMain);
Damit lösche ich aber das vorher in setupUi(this); erstellte Layout. Wie das Layout heißt das vorher verwendet wird konnte ich aber nicht finden. Denn was ich doch eigentlich will ist ein "addLayout" oder ?

Matthias