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 original
int 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 original
MainWindow::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 original
Configuracion::~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++:
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.Ver original
// salir si se marcó la casilla if(ui->chSalir->isChecked()) this->close();
¿Debo hacer ésto de otra forma?
Un saludo