
原文地址(转):Qt主界面卡死的解决方案-一些具体实现方式
作者:张小飞
代码:
重写 QObject
// 头文件
class workThread : public QObject
{
Q_OBJECT
public:
workThread(QObject* parent = nullptr);
~workThread();
public slots:
void start1();
void doWork();
signals:
void workFinished();
void workStart();
};
//cpp
workThread::workThread(QObject* parent) : QObject (parent)
{
}
workThread::~workThread()
{
}
void workThread::start1()
{
emit workStart();
doWork();
}
void workThread::doWork()
{
for (int i = 0; i < 1000000; i++)
{
qDebug()<<i<<endl;
}
emit workFinished();
}
- 使用方法
QThread* m_workerThread = new QThread();
workThread* worker = new workThread();
worker->moveToThread(m_workerThread);
connect(m_workerThread, &QThread::started, worker, &workThread::start1);
connect(worker, &workThread::workFinished, m_workerThread, &QThread::quit);
connect(m_workerThread, &QThread::finished, m_workerThread, &QThread::deleteLater);
- 完整代码
下载地址




近期评论