2012-08-07 4 views
9

Sto provando a creare un pulsante di uscita che chiude correttamente la GUI che ho creato in QT. Ho provato a fare questo nel modo seguente:Come creare un pulsante di uscita corretto in 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(); 
} 

Purtroppo quando spingo il pulsante, il debugger dà un errore:

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

Qualcuno mi può puntare nella giusta direzione?

risposta

21

Collegare il segnale clicked() del pulsante allo slot close() della finestra principale. In questo modo le cose vengono ripulite correttamente.