Aufbau eines MainWindow mit Widgets
Verfasst: 25. Januar 2010 16:40
Hallo.
Ich fürchte, ich habe ein Brett vor dem Kopf. Vielleicht kann mit jemand helfen. Es geht um folgendes Problem:
Ich habe eine MainWindow, das soll in 2 Widgets aufgeteilt werden, mit einem GridLayout (auch wenn das bei 1x2 übertriben ist).
Diese Widgets wiederum sind Abgeleitete Klassen von QWidget:
Das Linke Widget soll jetzt ein GridLayout bekomen, für Buttons etc, das Rechte soll plotten.
Damit es nicht heißt, ich hätte mich nicht damit beschäftigt, hier meine bisherigen Ergebnisse:
QMainWindow hat ein CentralWidget, dass will ich wohl splitten. Also
Schreibe ich in den Konstruktor des QMainWindow (bzw. der abgeleiteten Klasse MainWindow
So, das RightWidget Plottet einfach nur, gekommt also kein Layout
Das Linke habe ich jetzt so gebaut.
Fertig! Leider starte ich das Programm, ich bekomme nur in MainWindow, wo das LeftWidget offenbar das einzige ist. Ich sehe "Hallo Welt", aber das RightWidget ist nicht da.
Ich finde leider den Denkfehler nicht. Kann mir jemand auf die Sprünge helfen, oder eine Stück Code von sich zum anschauen geben, das diese Funktionalität (oder so ähnlich) realisiert?
Vielen Dank im voraus,
curator
Ich fürchte, ich habe ein Brett vor dem Kopf. Vielleicht kann mit jemand helfen. Es geht um folgendes Problem:
Ich habe eine MainWindow, das soll in 2 Widgets aufgeteilt werden, mit einem GridLayout (auch wenn das bei 1x2 übertriben ist).
Diese Widgets wiederum sind Abgeleitete Klassen von QWidget:
Code: Alles auswählen
class LeftWidget(*parent):QWidget(parent)
class RightWidget(*parent):QGLWidget(parent)
Damit es nicht heißt, ich hätte mich nicht damit beschäftigt, hier meine bisherigen Ergebnisse:
QMainWindow hat ein CentralWidget, dass will ich wohl splitten. Also
Schreibe ich in den Konstruktor des QMainWindow (bzw. der abgeleiteten Klasse MainWindow
Code: Alles auswählen
MainWindow::MainWindow(QWidget *parent):QMainWindow(parent)
{
this->setCentralWidget(new QWidget(this));
QGridLayout *l= new QGridLayout();
LeftWidget *lw = new LeftWidget(this);
RightWidget *rw = new RightWidget(this);
l->addWidget(lw,0,0);
l->addWidget(rw,0,1);
centralWidget()->setLayout(l);
}
Das Linke habe ich jetzt so gebaut.
Code: Alles auswählen
RightWidget::RightWidget(QWidget *parent):QWidget(parent)
{
QGridLayout *l= new QGridLayout();
QLabel *label = new QLabel("Hallo");
QLineEdit *lineedit = new QLineEdit("Welt");
l->addWidget(label,0,0);
l->addWidget(lineedit,0,1);
setLayout(l);
}
Ich finde leider den Denkfehler nicht. Kann mir jemand auf die Sprünge helfen, oder eine Stück Code von sich zum anschauen geben, das diese Funktionalität (oder so ähnlich) realisiert?
Vielen Dank im voraus,
curator