폼안에 쓰레드 호출 함수 넣기
// thread.h
#include <QThread>
class Control_Thread : public QThread
{
Q_OBJECT
private:
bool bActive;
public:
explicit Control_Thread(QObject *parent = 0);
void run();
void ThreadStop();
signals:
void FormControl(); // 폼에서 호출할 함수
};
// thread.cpp
Control_Thread::Control_Thread(QObject *parent) : QThread(parent)
{
bActive = true;
}
void Control_Thread::run()
{
QMutex mutex;
while(bActive) {
mutex.lock();
emit FormControl();
mutex.unlock();
}
}
void Control_Thread::ThreadStop()
{
bActive = false
}
// form.h
class MainWindow : public QMainWindow
{
Q_OBJECT
private:
Ui::MainWindow *ui;
Control_Thread *ControlThread;
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
public slots:
void FormControl();
};
// form.cpp
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
ControlThread = new Control_Thread(this);
connect(ControlThread, SIGNAL(FormControl()), this, SLOT(FormControl())); // 연결
ControlThread->start();
}
MainWindow::~MainWindow()
{
ControlThread->ThreadStop();
ControlThread->wait();
delete ControlThread;
delete ui;
}
void MainWindow::FormControl()
{
// 반복 기능 구현
}