請問各位大大
小弟是Qt的新手,最近在綀習寫一隻程式。
目的是希望按下一個button A後 開啟一個thread
然後按下另一個button B可以將此thread結束
但執行程式後發現 button A按下後 Dialog視窗上的UI就沒有回應了
我不知道寫法哪裡出錯,而在網路上找了許多文章仍然沒有找到解決的方法。因此想在這請教有經驗的前輩們,這問題該如何解決。
以下附上我的做法
1 先用Qt designer設計介面 並產生對應的 form1.h form1.cpp
2 將thread.cpp 及thread.h加入project中
3 在form1.ui.h 宣告 thread的物件並實作 button A 及 button B的code
下面附上我的程式碼
//********* thread.h *************
#ifndef THREAD_H
#define THREAD_H
#include <qthread.h>
class testThread : public QThread
{
public:
testThread();
~testThread();
void run();
void stop();
private:
bool stopped;
};
#endif
//******* thread.cpp *********
#include "thread.h"
testThread::testThread()
{
stopped = false;
}
testThread::~testThread()
{
}
void testThread :: run()
{
printf("Thread run\n");
while( !stopped)
{
sleep(1);
}
stopped = false;
printf("Thread stop\n");
}
void testThread :: stop()
{
stopped = true;
}
//******* Form1.ui.h **********
testThread mythread;
void Form1::button1()
{
mythread.run();
}
void Form1::button2()
{
mythread.stop();
}
感激不盡 謝謝