PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Qt] Speicherzugriffsfehler



Gartenzwerg
22-04-2004, 07:02
hi,
ich habe ein Dialog mit Hilfe des Qt-Designers erstellt und von dieser Vorlage meinen endgültigen Dialog abgeleitet. Diesen Dialog habe ich einer weiteren Klasse als FindDialog *mFindDialog; deklariert. Des Weiteren möchte ich diesen Dialog in einem Slot aufrufen:


void CategoryTable::FindDialogSlot()
{
// Existiert der FindDialog schon?
if(!mFindDialog)
{
// Nein? Erstellen
mFindDialog=new FindDialog(this);

connect(mFindDialog, SIGNAL(FindPrev(const QString&, bool)),
this, SLOT(FindPrevSlot(const QString&, bool)));
connect(mFindDialog, SIGNAL(FindNext(const QString&, bool)),
this, SLOT(FindNextSlot(const QString&, bool)));
connect(mFindDialog, SIGNAL(ReplacePrev(const QString&, const QString&, bool, bool)),
this, SLOT(ReplacePrevSlot(const QString&, const QString&, bool, bool)));
connect(mFindDialog, SIGNAL(ReplaceNext(const QString&, const QString&, bool, bool)),
this, SLOT(ReplaceNextSlot(const QString&, const QString&, bool, bool)));
}

// Wenn der FindDialog aktuell nicht gezeigt wird, anzeigen
if(mFindDialog->isHidden())
{

mFindDialog->show();
}
else
{
// FindDialog aktivieren
mFindDialog->raise();
mFindDialog->setActiveWindow();
}
}

Doch jeder Aufruf dieses Slots verursacht einen Speicherzugriffsfehler und das Programm stürzt ab. Welche Ursachen könnte dies haben?

Tschau Gartenzwerg

tuxipuxi
22-04-2004, 11:48
Hi,

kannst du den Problembereich durch ein paar debug ausgaben eingrenzen? Dann weisst du wo genau der segfault auftritt.

Michael.

Gartenzwerg
22-04-2004, 13:45
hi,
ja sorry, hätte ich gleich machen können.
Also obwohl das Programm das erste Mal gestartet wird, geht er nicht in den if(!mFileDialog)-Block, dadurch wird natürlich kein Fenster initialisiert und sobald ich show() o.ä. aufrufe, schmiert mir das Programm ab.

Tschau Gartenzwerg

Gartenzwerg
22-04-2004, 15:42
hi,
sorry, ich hatte vergessen den Pointer vorher auf Null zu setzen. Hat sich jetzt erledigt.

Tschau Gartenzwerg