Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » KDevelop / Qt / wxWidget » Fenster stürzt nach funktionsaufruf ab

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.10.2004, 20:07 Uhr
Kasperdelasopa



Hi
Ich habe mir eine Klasse "Fenster" geschrieben die von KMainWindow abgeleitet, also beerbt wird.
Jetzt habe ich ihn meiner Klasse die als MainWindow definiert wird (Wie des halt KDEvelop so macht wenn man ein neus projelt anlegt) und wollte ein Objekt der Klasse Fenster initialisieren und des hat auch noch soweit geklappt.
Jetzt wollte ich aber in einer Methode die funktion show() die an meine Klasse vereerbt wird aufrufen, aber genau wenn ich diese Funktion aufrufe stürzt mein Programm ab.
Woran kann das liegen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.10.2004, 22:41 Uhr
typecast
aka loddab
(Operator)


Hmm. Ohne Fehlermeldung und den Code der Funktion in der du show aufrufst (also wahrscheinlich die main Funktion) kann ich nichts dazu sagen.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.10.2004, 14:25 Uhr
Kasperdelasopa



Also KDevelop beendet das Programm mit dem Status 253, und der Crashmanager sagt es wurde das Signal 11 (SIGSEGV);

Zum Quelltext, da is ja eine von mir geschriebene Klasse ist sind das insgesammt 3 *.cpp und 2 *.h Dateien, und um alles im Context zu sehen muss ich dir schon alles zeigen aber von mir aus kann ich des mal machen.

main.cpp:


C++:

#include "schaulager.h"
#include "fenster.h"
#include <kapplication.h>
#include <kaboutdata.h>
#include <kcmdlineargs.h>
#include <klocale.h>

static const char description[] =
    I18N_NOOP("A KDE KPart Application");

static const char version[] = "0.1";

static KCmdLineOptions options[] =
{
//    { "+[URL]", I18N_NOOP( "Document to open." ), 0 },
    KCmdLineLastOption
};

int main(int argc, char **argv)
{
    KAboutData about("schaulager", I18N_NOOP("Schaulager"), version, description,
                     KAboutData::License_GPL, "(C) 2004 Manuel Sch", 0, 0, "Kasperdelasopa@linux");
    about.addAuthor( "Manuel Sch", 0, "Kasperdelasopa@linux" );
    KCmdLineArgs::init(argc, argv, &about);
    KCmdLineArgs::addCmdLineOptions( options );
    KApplication app;
    Schaulager *mainWin = 0;

    if (app.isRestored())
    {
        RESTORE(Schaulager);
    }
    else
    {
        // no session.. just start up normally
        KCmdLineArgs *args = KCmdLineArgs::parsedArgs();

        /// @todo do something with the command line args here

        Schaulager *mainWin = new Schaulager();
    
        app.setMainWidget( mainWin );
        mainWin->show();
        
        args->clear();
    }

    // mainWin has WDestructiveClose flag by default, so it will delete itself.
    return app.exec();
}





schaulager.cpp:


C++:

#include "schaulager.h"
#include "fenster.h"
#include <kmainwindow.h>
#include <klocale.h>



Schaulager::Schaulager(): KMainWindow( 0, "Schaulager" )
{

QPushButton *schalter = new QPushButton("anzeigen",this);

Fenster *fenster = new Fenster("!!!NOCH NIX!!!");
    fenster->setGeometry(300,750,280,80);  
             fenster->show();
    
    
    
connect(schalter,SIGNAL(clicked()),SLOT (fensterauf()));  

}

Schaulager::~Schaulager()
{
}


void Schaulager::fensterauf()
{
  fenster->verstecken();      //hier direkt hide() auzurufen geht auch nicht
  }


#include "schaulager.moc"





schaulager.h:

C++:

#ifndef _SCHAULAGER_H_
#define _SCHAULAGER_H_

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <kmainwindow.h>
#include <qpushbutton.h>
#include "fenster.h"

class Schaulager : public KMainWindow
{
    Q_OBJECT
public:
  
    Schaulager();
    virtual ~Schaulager();
    
public:

QPushButton *schalter;  
Fenster *fenster;

public slots:

void fensterauf();
};



#endif // _SCHAULAGER_H_





fenster.cpp:


C++:

#include "fenster.h"
#include <kmainwindow.h>
#include <klocale.h>

Fenster::Fenster(QString text): KMainWindow( 0, "Fenster" )
{
   QPushButton *schalter_1 = new QPushButton("JA",this);
   schalter_1->move(30,30);
    QPushButton *schalter_2 = new QPushButton("NEIN",this);
    schalter_2->move(150,30);
   QLabel *anzeige = new QLabel(text,this);
   anzeige->setGeometry(60,5,250,20);

   connect(schalter_1,SIGNAL(clicked()),SLOT (ja()));
   connect(schalter_2,SIGNAL(clicked()),SLOT (nein()));
  
}




Fenster::~Fenster()
{
}


void Fenster::ja()
{
}

void Fenster::nein()
{
close();
}

void Fenster::zeigen()
{
show();
}

void Fenster::verstecken()
{
hide();
}


#include "fenster.moc"




fenster.h:


C++:

#ifndef _FENSTER_H_
#define _FENSTER_H_

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <kmainwindow.h>
#include <qpushbutton.h>
#include <qlabel.h>
#include <qstring.h>

class Fenster : public KMainWindow
{
    Q_OBJECT
public:
  
    
    Fenster(QString text);
    virtual ~Fenster();
public:

QPushButton *schalter_1, *schalter_2;
QLabel *anzeige;

public slots:

void ja();
void nein();
void zeigen();
void verstecken();
    
};



#endif // _SCHAULAGER_H_


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ KDevelop / Qt / wxWidget ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: