当点击关闭按钮时,会调清轿用该函数,好春你要友正耐执行什么判断,就重新实现下该函数。
QT线程有3个函数可以关闭线程,态没尘分别是:void quit ()
相当于exit(0)。
void exit ( int returnCode = 0 )
调用exit后,thread将退出event loop,并从exec返回,exec的返回值就是returnCode。
通常returnCode=0表示成功,其他值表示失败。
void terminate ()
结束线程,线察歼程是否立即终止取决于 *** 作系统。
线程被终止时,所有等待该线程Finished的线程都将被唤醒。
terminate是否调用取决于setTerminationEnabled ( bool enabled = true )开关。
其中quit与terminate是槽,可以直接用信号连接关闭线程,不过一般不建议使用terminate,还有想关闭线程,最好像下面例子帆禅;
直接调用stop接口就行了,线程就会关闭
class Thread : public QThread
{
Q_OBJECT
public:
Thread()
void setMessage(const QString &message)
void stop()
protected:
void run()
private:
QString messageStr
volatile bool stopped
}
Thread::Thread()
{
stopped = false
}
void Thread::run()
{
while (!stopped)
std::cerr <<qPrintable(messageStr)
stopped = false
std::cerr <<std::endl
}
void Thread::stop()
{
stopped = true
}
如果肢槐直接关闭软件(线程没有历搭友停止)则会有告警,那么可以在析构函数里加入 terminate()停止线程枝哗就可以或者run(){..........;}执行完了就会自动退出;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)