Löschen eines Singleton main windows

Alles rund um die Programmierung mit Qt
Antworten
monte
Beiträge: 24
Registriert: 28. August 2004 17:04
Wohnort: Wiswiel
Kontaktdaten:

Löschen eines Singleton main windows

Beitrag von monte »

Hi,

Ich hab mein main Window als Singleton Objekt Programmiert. Daher ich habe in meiner main() einen statischen Aufruf MainWindow::getMainWindow() welcher mir ein QMainWindow erzeugt.

etwa so :

Code: Alles auswählen

   
   QApplication app(argc, argv);
   if( !createConnection() )
      return 1;

   MainWindow * window = MainWindow::getMainWindow();
   window->show();

   iRetVal = app.exec();

   MainWindow::deleteMainWindow();
   return iRetVal;

Code: Alles auswählen

MainWindow * MainWindow::getMainWindow()
{
    if( !MainWindow::bHasInstance )
    {
        MainWindow::bHasInstance = true;
        MainWindow::mwInstance = new MainWindow();
    }

    return MainWindow::mwInstance;
}

Code: Alles auswählen

void MainWindow::deleteMainWindow()
{
    if( MainWindow::bHasInstance )
    {
        MainWindow::bHasInstance = false;
        MainWindow::mwInstance->close();
        MainWindow::mwInstance->deleteLater();
    }
}
Beim beenden des Programms bekomm ich nun auf der Konsole folgende Meldung.

Code: Alles auswählen

X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  18 (X_ChangeProperty)
  Resource id in failed request:  0x0
  Serial number of failed request:  5160
  Current serial number in output stream:  5172
Kann es sein das das Objekt nicht richtig gelöscht wird ?
Oder wird das Objekt von QT gelöscht ?

MfG
Martin
Emperor_L0ser
Beiträge: 51
Registriert: 28. Juli 2005 12:26
Kontaktdaten:

Beitrag von Emperor_L0ser »

wenn du nicht sehr spezielle sachen drin hast, löscht qt es beim beenden, die erste zeile der fehlermeldung sieht aus, als wenn das fenster bereits gelöscht wurde und dann jemand versucht drauf zuzugreifen.
Antworten