ich bin gerade dabei mein erstes Qt Programm zu schreiben und habe gerade das erste Dialog Feld fertig. Wenn ich den Dialog beendet bekomme ich immer ein Segmentation Fault. Soviel habe ich schon herausgefunden, dass es etwas mit gridLayout zu tun hat. Wo der Fehler genau ist habe ich keine Ahnung. Könnt Ihr mir dabei vielleicht helfen?
mainwindow.cpp:
Code: Alles auswählen
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{
font14pxB.setPixelSize(14);
font14pxB.setBold(true);
font9px.setPixelSize(9);
if (this->objectName().isEmpty())
this->setObjectName(QStringLiteral("MainWindow"));
this->resize(800, 480);
this->setMaximumSize(800, 480);
this->setMinimumSize(800, 480);
QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
this->setSizePolicy(sizePolicy);
centralWidget = new QWidget(this);
centralWidget->setObjectName(QStringLiteral("centralwidget"));
verticalLayoutWidget = new QWidget(centralWidget);
verticalLayoutWidget->setObjectName(QStringLiteral("verticalLayoutWidget"));
verticalLayoutWidget->setGeometry(0, 0, 800, 480);
verticalLayout = new QVBoxLayout(verticalLayoutWidget);
verticalLayout->setSpacing(5);
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
labelTitel = new QLabel(verticalLayoutWidget);
labelTitel->setObjectName(QStringLiteral("labelTitel"));
labelTitel->setFont(font14pxB);
labelTitel->setAlignment(Qt::AlignCenter);
labelTitel->setText(QString("Geocache Verwaltung"));
labelVersion = new QLabel(this);
labelVersion->setText(QString("(c) by Saver Soft - Sauer, 2017, Version 1.0"));
labelVersion->setFont(font9px);
pB_Beenden = new QPushButton(verticalLayoutWidget);
pB_Beenden->setObjectName(QStringLiteral("pB_Beenden"));
pB_Beenden->setText(QString("&Beenden"));
pB_Admin = new QPushButton(verticalLayoutWidget);
pB_Admin->setObjectName(QStringLiteral("pB_Beenden"));
pB_Admin->setText(QString("&Admin"));
pB_GCListe = new QPushButton(verticalLayoutWidget);
pB_GCListe->setObjectName(QStringLiteral("pB_GCListe"));
pB_GCListe->setText(QString("GC Liste"));
pB_Helper = new QPushButton(verticalLayoutWidget);
pB_Helper->setObjectName(QStringLiteral("pB_Helper"));
pB_Helper->setText(QString("Hilfstabellen"));
pB_GCEdit = new QPushButton(verticalLayoutWidget);
pB_GCEdit->setObjectName(QStringLiteral("pB_GCEdit"));
pB_GCEdit->setText(QString("GC Bearbeiten"));
vSp_10 = new QSpacerItem(5, 10, QSizePolicy::Minimum, QSizePolicy::Expanding);
vSp_20 = new QSpacerItem(5, 20, QSizePolicy::Minimum, QSizePolicy::Expanding);
vSp_50 = new QSpacerItem(5, 50, QSizePolicy::Minimum, QSizePolicy::Expanding);
hSp_10 = new QSpacerItem(10, 5, QSizePolicy::Minimum, QSizePolicy::Expanding);
hSp_20 = new QSpacerItem(20, 5, QSizePolicy::Minimum, QSizePolicy::Expanding);
gridLayout = new QGridLayout();
gridLayout->setObjectName(QStringLiteral("gridLayout"));
gridLayout->addItem(hSp_10, 1, 1, 1, 1);
gridLayout->addWidget(pB_GCListe, 1, 2, 1, 1);
gridLayout->addItem(hSp_20, 1, 3, 1, 1);
gridLayout->addWidget(pB_GCEdit, 1, 4, 1, 1);
gridLayout->addItem(hSp_20, 1, 5, 1, 3);
gridLayout->addItem(vSp_10, 2, 1, 1, 7);
gridLayout->addItem(hSp_10, 3, 1, 1, 1);
gridLayout->addWidget(pB_Admin, 3, 2, 1, 1);
gridLayout->addItem(hSp_20, 3, 3, 1, 1);
gridLayout->addWidget(pB_Helper, 3, 4, 1, 1);
gridLayout->addItem(hSp_20, 3, 5, 1, 1);
gridLayout->addWidget(pB_Beenden, 3, 6, 1, 1);
gridLayout->addItem(hSp_10, 3, 7, 1, 1);
gridLayout->addItem(hSp_10, 4, 1, 1, 1);
gridLayout->setRowStretch(4,1);
verticalLayout->addItem(vSp_10);
verticalLayout->addWidget(labelTitel);
verticalLayout->addItem(vSp_50);
verticalLayout->addLayout(gridLayout);
verticalLayout->setStretch(3, 1);
statusBar = new QStatusBar(this);
statusBar->addPermanentWidget(labelVersion);
this->setCentralWidget(centralWidget);
this->setWindowTitle(QString("Geocache Verwaltung"));
this->setStatusBar(statusBar);
QObject::connect(pB_Beenden, SIGNAL(clicked(bool)), this, SLOT(close()));
}
MainWindow::~MainWindow()
{
}
Code: Alles auswählen
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
gruss
martin