Anfängerübung mit Absturz
Verfasst: 17. August 2009 18:41
Ich begreife nicht, warum bei untigem Programm die Zeile
mytextedit->setText("Hey") wie erwartet funktioniert, wenn ich die gleiche Zeile aber über die Methode go() aufrufe, das Programm abstürzt.
Vielen Dank!
main.cpp:
#include <KApplication>
#include <KAboutData>
#include <KCmdLineArgs>
#include <QDebug>
#include "mainwindow.h"
#include <iostream>
int main (int argc, char **argv)
{
KAboutData aboutData( "x1", 0,
ki18n("x1"), "1.0",
ki18n("Peter Schmidt"),
KAboutData::License_GPL,
ki18n("Copyright (c) 2007 Developer") );
KCmdLineArgs::init( argc, argv, &aboutData);
KApplication app;
MainWindow* window = new MainWindow();
window->show();
return app.exec();
}
mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <KXmlGuiWindow>
#include <KTextEdit>
class MainWindow : public KXmlGuiWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent=0);
private:
QTextEdit* mytextedit;
private slots:
void go();
};
#endif
mainwindow.cpp:
#include "mainwindow.h"
#include <QVBoxLayout>
#include <QPushButton>
#include <QTextEdit>
MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent)
{
QWidget *mainWidget = new QWidget(this);
QVBoxLayout * mylayout = new QVBoxLayout(mainWidget);
QTextEdit *mytextedit = new QTextEdit(this);
mylayout->addWidget(mytextedit);
mytextedit->setText("Hey");
//go();
QPushButton * mybutton = new QPushButton("Go!",this);
mylayout->addWidget(mybutton);
setCentralWidget(mainWidget);
setupGUI();
}
void MainWindow::go() {
mytextedit->setText("Hey");
}
mytextedit->setText("Hey") wie erwartet funktioniert, wenn ich die gleiche Zeile aber über die Methode go() aufrufe, das Programm abstürzt.
Vielen Dank!
main.cpp:
#include <KApplication>
#include <KAboutData>
#include <KCmdLineArgs>
#include <QDebug>
#include "mainwindow.h"
#include <iostream>
int main (int argc, char **argv)
{
KAboutData aboutData( "x1", 0,
ki18n("x1"), "1.0",
ki18n("Peter Schmidt"),
KAboutData::License_GPL,
ki18n("Copyright (c) 2007 Developer") );
KCmdLineArgs::init( argc, argv, &aboutData);
KApplication app;
MainWindow* window = new MainWindow();
window->show();
return app.exec();
}
mainwindow.h:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <KXmlGuiWindow>
#include <KTextEdit>
class MainWindow : public KXmlGuiWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent=0);
private:
QTextEdit* mytextedit;
private slots:
void go();
};
#endif
mainwindow.cpp:
#include "mainwindow.h"
#include <QVBoxLayout>
#include <QPushButton>
#include <QTextEdit>
MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent)
{
QWidget *mainWidget = new QWidget(this);
QVBoxLayout * mylayout = new QVBoxLayout(mainWidget);
QTextEdit *mytextedit = new QTextEdit(this);
mylayout->addWidget(mytextedit);
mytextedit->setText("Hey");
//go();
QPushButton * mybutton = new QPushButton("Go!",this);
mylayout->addWidget(mybutton);
setCentralWidget(mainWidget);
setupGUI();
}
void MainWindow::go() {
mytextedit->setText("Hey");
}