Seite 1 von 1

[gelöst] setCentralWidget() wechsel von Widgets

Verfasst: 25. April 2010 17:17
von 24dan
Hi, wie kann ich den Inhalt von meinem QMainWindow::centralWidget ()
wechseln ohne das meine Anwendung ständig mit einem Fehler einknickt.

FEHLER:
Wenn ich wechseln von a nach k und dann wieder nach a stürzt mein Programm mit Fehlermeldung: -1073741819 ab.

Das hier führt zum Absturz:

Code: Alles auswählen

// mainWindow.h
private:
   A *a;
   K *k;
// mainWindow.cpp

Code: Alles auswählen

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
a = new A();
a = new K();
}

void MainWindow::naviStatus(int newValue)
{
    switch(newValue){
    case 0: MainWindow::setCentralWidget(a);
        break;
    case 1: MainWindow::setCentralWidget(k);
        break;

}

Code: Alles auswählen

K::K(QWidget *parent) :
    QDockWidget(parent),
    ui(new Ui::K)
{
    ui->setupUi(this);
}

Code: Alles auswählen

A::A(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::A)
{
    ui->setupUi(this);
stuff..
}

:cry:

Verfasst: 25. April 2010 17:36
von 24dan
AHHHH ......

Wer lesen kann ist klar im Vorteil.... :oops:
Note: QMainWindow takes ownership of the widget pointer and deletes it at the appropriate time.

Re: setCentralWidget() wechsel von Widgets

Verfasst: 25. April 2010 17:38
von franzf

Code: Alles auswählen

a = new A();
a = new K();
Absicht?

Re: setCentralWidget() wechsel von Widgets

Verfasst: 25. April 2010 18:00
von 24dan
franzf hat geschrieben:

Code: Alles auswählen

a = new A();
a = new K();
Absicht?
Danke, nein ist ein Schreibfehler.

Code: Alles auswählen

a = new A();
k = new K();