Hola
Estoy teniendo un problema con la destrucción de un objeto que creo en el main y que en determinadas circunstancias, no se destruye, un poco de código para ver:
El main:
Código C++:
Ver originalint main(int argc, char *argv[])
{
QApplication a(argc, argv);
// más código aquí
// el objeto en cuestion es éste:
Configuracion config(carpetaDatos + QDir::separator() + "cfg.ini");
// más código aquí
// abrir la ventana principal, que le paso el objeto creado anteriormente
MainWindow w(&config);
w.show();
return a.exec();
}
El constructor del MainWindow es así:
Código C++:
Ver originalMainWindow::MainWindow(Configuracion *cfg, QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow),
config(cfg)
// config es un puntero a Configuracion
{
ui->setupUi(this);
// más código aquí
}
Y en el destructor de Configuración he puesto que me imprima un mensaje:
Código C++:
Ver originalConfiguracion::~Configuracion()
{
qDebug() << "Configuracion destruida";
}
En la ventana tengo un QPushButton y un QAction, ambos conectados con el SLOT "close()" del QMainWindow y todo funciona, cuando cierro la ventana por alguno de esos dos opciones o pulsando el botón "X", aparece el mensaje de "Configuración destruida".
Ahora bien, tengo puesto un QChechBox, que si está marcado, cuando termina de imprimir, cierra el programa, esto lo tengo hecho de la siguiente forma:
Código C++:
Ver original// salir si se marcó la casilla
if(ui->chSalir->isChecked()) this->close();
Pues bien, la ventana se cierra, pero el objeto Configuracion no se destruye. Esto solo me ocurre desde windows, he probado con linux y no ocurre.
¿Debo hacer ésto de otra forma?
Un saludo