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
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