ich schreibe mir von Hand gerade eine GUI zusammen. Man muss dazusagen, dass ich kein OOP-Profi bin. Also wenn ich irgendwo Blödsinn fabriziere, dann was das gut wenn ihr das sagt...
Also ich erzeuge in einem QGridLayout (das in CGUI.h erzeugt wird) ein weiteres QGridLayout (das in CGUIAufzSys.h). In einer weiteren Datei ist es aus Übersichtlichkeitsgründen.
Das Programm wird erfolgreich kompiliert. Doch das zweite GridLayout ist einfach nicht zu sehen. Auf der Ausgabe wird folgendes ausgegeben:
Hier Ausschnitte aus dem Code:QLayout: Attempting to add QLayout "" to CGUI "", which already has a layout
CGUI.h
Code: Alles auswählen
#include "CGUIAufzSys.h"
class CGUI : public QMainWindow
{
...
//Gesamtlayout erstellen
QGridLayout* layout;
QWidget *centralWindow;
//Inneres QGridLayout erstellen
CGUIAufzSys *guiAufzSys;
public:
CGUI(QMainWindow *parent = 0, Qt::WindowFlags flags=0);
...
};Code: Alles auswählen
CGUI::CGUI(QMainWindow *parent, Qt::WindowFlags flags) : QMainWindow(parent,flags)
{
...
layout = new QGridLayout;
centralWindow = new QWidget;
setCentralWidget(centralWindow);
centralWindow->setLayout(layout);
...
guiAufzSys = new CGUIAufzSys(this);
layout->addLayout(guiAufzSys, 0, 0, 0, 1);
...
}Code: Alles auswählen
class CGUIAufzSys : public QGridLayout
{
Q_OBJECT
QGridLayout *layoutAufzSys;
//Layout Test
QPushButton *button1;
public:
CGUIAufzSys(QWidget *parent);
};Code: Alles auswählen
#include "CGUIAufzSys.h"
CGUIAufzSys::CGUIAufzSys(QWidget *parent) : QGridLayout(parent)
{
layoutAufzSys = new QGridLayout;
//Layout TestButton
button1 = new QPushButton("One");
//layoutAufzSys wird mit Inhalt gefühlt
layoutAufzSys -> addWidget(button1, 0, 0);
}