web-dev-qa-db-ja.com

qtで正しい終了ボタンを作成する方法

QTで作成したGUIを正しく閉じる終了ボタンを作成しようとしています。私はこれを次の方法で試しました:

#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();
}

残念ながら、ボタンを押すと、デバッガーからエラーが発生します。

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

誰かが私を正しい方向に向けることができますか?

9
Frank

ボタンのclicked()信号をメインウィンドウのclose()スロットに接続します。そうすれば、物事は適切にクリーンアップされます。

22
cmannett85