Seite 1 von 1

Widget in MainWindow einbinden

Verfasst: 22. November 2008 20:14
von nierth
Hallo,

der Titel mag simpel klingen, allerdings stürzt bei mir jedes Mal das Programm ab, wenn ich es in mit der Zeile "GuiDisplay *guiDisplay = new GuiDisplay(this);" aufrufe - mit etwas simplen wie z.B. einem Label als centralWidget klappt es. Anbei der Code:

Code: Alles auswählen

#include <QApplication>
#include "guidisplay.h"
#include "guiparser.h"
#include "guisensordata.h"
#include "mainwindow.h"

using namespace std;

int main(int argc, char *argv[]) {

	QApplication app(argc, argv);

	QList<GuiSensorData> data;

	GuiParser parser;
	parser.readData(&data);

	MainWindow main;
	main.show();

	return app.exec();
}
Die MainWindow.cpp

Code: Alles auswählen

 #include "mainwindow.h"

 MainWindow::MainWindow()
 {
     GuiDisplay *guiDisplay = new GuiDisplay(this); // <--- hier stürzt das Programm immer ab
     setCentralWidget(guiDisplay);
     createActions();
     createMenus();
     setWindowTitle(tr("LSR"));
     setMinimumSize(160, 160);
 }

 void MainWindow::viewSensor()
 {
 }

 void MainWindow::viewConfig()
 {
 }

 void MainWindow::createActions()
 {
     sensor = new QAction(tr("&Sensor"), this);
     connect(sensor, SIGNAL(triggered()), this, SLOT(viewSensor()));

     config = new QAction(tr("&Config"), this);
     connect(config, SIGNAL(triggered()), this, SLOT(viewConfig()));
 }

 void MainWindow::createMenus() {
     viewMenu = menuBar()->addMenu(tr("&View"));
     viewMenu->addAction(sensor);
     viewMenu->addAction(config);
 }
abschließend die GuiDisplay.cpp (der Konstruktor, der Rest ist nur Malen und funktioniert auch)

Code: Alles auswählen

#include "guidisplay.h"

GuiDisplay::GuiDisplay(QWidget *parent) :QWidget(parent) {
	setPalette(QPalette(QColor(250, 250, 200)));
	setAutoFillBackground(true);
	resize(600, 600);
	setMaximumSize(600, 600);
	setMinimumSize(600, 600);
}
falls jemand den Fehler findet bin ich dankbar,

Thomas

[/quote]

Verfasst: 23. November 2008 13:02
von solarix
wenn ich es in mit der Zeile "GuiDisplay *guiDisplay = new GuiDisplay(this);" aufrufe
Ich bin bei dieser Beschreibung etwas misstrauisch, weil du nicht klar geschrieben hast, wie du darauf kommst... hält der Debugger genau auf dieser Zeile das Programm an?