这个错误是因为 QThread::exec()
是一个受保护的成员函数,不能直接在子类中调用。为了解决这个问题,你可以使用 QEventLoop
来替代 exec()
。
请将 Worker
类的 exec()
函数修改如下:
void Worker::exec()
{
QEventLoop loop;
connect(this, &Worker::finished, &loop, &QEventLoop::quit);
loop.exec();
}
通过使用 QEventLoop
,我们可以等待信号发出后退出循环,从而实现与 exec()
相同的效果。
请尝试使用修改后的代码,并重新编译运行。这样应该能够解决之前遇到的错误。
内容由零声教学AI助手提供,问题来源于学员提问