2012-08-07 12 views
9

Estoy intentando crear un botón de salida que cierra correctamente la GUI que he creado en QT. He intentado hacer esto de la siguiente manera:Cómo crear un botón de salida correcto en qt

#include <QtGui/QApplication> 
#include "mainwindow.h" 

int main(int argc, char *argv[]) 
{ 
QApplication a(argc, argv); 

int window_width = QApplication::desktop()->width(); 
int window_height = QApplication::desktop()->height(); 

MainWindow w; 

QPushButton * quit_btn = new QPushButton; 
quit_btn->setParent(w.centralWidget()); 
quit_btn->setGeometry(window_width-50,12,32,32); 

QObject::connect(quit_btn,SIGNAL(clicked()),qApp,SLOT(quit())); 

w.resize(window_width,window_height); 
w.show(); 

return a.exec(); 
} 

Desafortunadamente cuando presiono el botón, el depurador da un error:

Invalid address specified to RtlFreeHeap(003E0000, 0028F950) 

Puede alguien me punto en la dirección correcta?

Respuesta

21

Conecte la señal del botón clicked() a la ranura close() de su ventana principal. De esa forma, las cosas se limpian adecuadamente.

Cuestiones relacionadas