티스토리 뷰
// 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()
{
// 반복 기능 구현
}
'프로그래밍 > Qt' 카테고리의 다른 글
QSerialPort (0) | 2019.06.11 |
---|---|
QTcpSocket isConnected (0) | 2019.06.11 |
버튼으로 Edit 커서 이동 (0) | 2019.06.11 |
int to QString (0) | 2019.06.11 |
gateway 정보 가져오기 (0) | 2019.06.11 |
- Total
- Today
- Yesterday