控制台程序通过按Q退出关闭程序。
main.cpp:
Exit_Thread *mythread=new Exit_Thread();
QObject::connect(mythread,SIGNAL(finished()),&a,SLOT(quit()));
mythread->start();
exitthread.h:
#ifndef EXITTHREAD_H
#define EXITTHREAD_H
#include <QObject>
#include <QThread>
class Exit_Thread : public QThread
{
public:
Exit_Thread();
~Exit_Thread();
protected:
void run();
int stopflag;
};
#endif // EXITTHREAD_H
exitthread.cpp:
#include "exitthread.h"
#include <iostream>
Exit_Thread::Exit_Thread()
{
stopflag = false;
}
Exit_Thread::~Exit_Thread()
{
stopflag = true;
this->quit();
this->wait();
}
void Exit_Thread::run()
{
const char *pszTip = "Press 'Q' exit application.\n";
printf("%s\n", pszTip);
while (true)
{
std::string line;
std::cin>>line;
std::cout<<line<<std::endl;
//printf("%s", pszTip);
if (line.compare("Q")==0)
{
break;
}
if(stopflag)
{
break;
}
}
printf("Done.\n");
}