#include "mydialog.h"
#include <QCloseEvent>
#include <QDebug>
MyDialog::MyDialog(QWidget *parent)
: QWidget(parent)
{
startBtn = new QPushButton("Start");
stopBtn = new QPushButton("Stop");
label = new QLabel;
label->setText("Number");
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(label);
layout->addSpacing(20);
layout->addWidget(startBtn);
layout->addWidget(stopBtn);
setLayout(layout);
mThread = new myThread(this);
QObject::connect(mThread, SIGNAL(NumberChanged(int)), this, SLOT(onNumberChanged(int)));
QObject::connect(startBtn, SIGNAL(clicked()), this, SLOT(startBtn_click()));
QObject::connect(stopBtn, SIGNAL(clicked()), this, SLOT(stopBtn_click()));
}
MyDialog::~MyDialog()
{
}
void MyDialog::onNumberChanged(int number)
{
label->setText(QString::number(number));
}
void MyDialog::startBtn_click()
{
mThread->Stop = false;
mThread->start();
}
void MyDialog::stopBtn_click()
{
mThread->Stop = true;
}
void MyDialog::closeEvent(QCloseEvent *e){
mThread->needQuit = true;
qDebug() << "close event";
mThread->requestInterruption();
mThread->Stop = false;
mThread->wait(1001);
mThread->exit();