Qt 5 Programm stürzt ab

2 Antworten

Wo es abstürzt hast Du leider verschwiegen -

Mir fällt auf, daß label kein Parent hat bzw. zugewiesen bekommt. Das könnte die Ursache sein: wenn vlayout den label plaziert - und der keinen Parent hat, könnte das einen 0-ptr-Access zur Folge haben.

regex9  26.02.2016, 21:31

Nein, daran liegt es nicht. Soweit ich weiß, verwalten Layouts ihre in ihnen befindlichen Elemente selbst in einer eigenen Baumstruktur. Schaut man sich zudem das 1. Code-Beispiel in der Dokumentation an (http://doc.qt.io/qt-5/layout.html), wird ersichtlich, das das parent-Objekt nicht notwendig ist.

0

Der von dir beschriebene Fehler weist in der Regel auf eine NullPointerException hin, da ein Pointer nicht langlebig genug war bzw. dessen referenziertes Objekt nicht mehr existiert (Memory leak).
Ich aber finde in deinem Code keinen Fehler, mein Compiler (MinGW) tut es auch nicht. Zudem öffnet sich ganz normal ein Fenster. Wenn ich auf den Button klicke, ändert sich dessen Text.

Du solltest dein Projekt daher nochmals neu kompilieren. Wenn das nichts hilft, lösche den vom Compiler erzeugten Ordner und kompilliere erneut.

Das einzige Problem, welches du noch beheben musst, ist diese Warnung:

QWidget::setLayout: Attempting to set QLayout "" on KdWindow "", which already has a layout

a) Entweder du legst ein zentrales Widget an:

QWidget *cw = new QWidget(this);
cw->setLayout(vLayout);
setCentralWidget(cw);
// setLayout kommt raus

(Sorry wegen der Formatierung, dieser WYSIWYG-Editor kotzt mich einfach nur an.. - es ist natürlich alles ein Codeblock, der nach der Zeile kommt, in der du dem

vLayout

den Button zufügst).

b) Oder du verwendest von Anfang QWidget als Basisklasse, statt QMainWindow.