[gelöst] setCentralWidget() wechsel von Widgets

Alles rund um die Programmierung mit Qt
Antworten
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

[gelöst] setCentralWidget() wechsel von Widgets

Beitrag 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:
Zuletzt geändert von 24dan am 25. April 2010 17:37, insgesamt 1-mal geändert.
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Beitrag 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.
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: setCentralWidget() wechsel von Widgets

Beitrag von franzf »

Code: Alles auswählen

a = new A();
a = new K();
Absicht?
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Re: setCentralWidget() wechsel von Widgets

Beitrag 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();
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
Antworten