引用第3楼benbenmajia于2010-03-15 09:13发表的 :
connect在哪个线程里面 ?
connect是在整个应用程序中的,假如整个应用程序是一个Dialog,上面有两个按钮(BtnA,BtnB),
当点击BtnA时开起线程,当点击BtnB时关闭线程,简化代码如下,点击BtnA时开启线程是没问题的,但问题是点击按钮B时怎样马上让线程停止下来,这主要是程序在mini2440中运行碰到的,不知道什么原因
class myThread:public QThread
{
..................
public:
void run;
}
void myThread::run()
{
while(1)
{
一直在做某事;
}
}
class Dialog:public QDialog
{
...............
public slots:
startThread();
stopThread();
. ...................
private:
myThread *mythread;
QPushButton *BtnA;
QPushButton *BtnB;
}
..........................
connect(BtnA,SIGNAL(clicked()),this,startThread()));
connect(BtnB,SIGNAL(clicked()),this,stopTherad()));
...........................
void Dialog::startThread()
{
mythread->run();
}
void Dialog::stopThread()
{
mythread->quit();
}