QT开发中文网

C:\Users\SFM301\Documents\untitled6\main.cpp:101: error: C2248: “QThread::exec”: 无法访问 protected 成员(在“QThread”类中声明) C:\Qt\Qt5.12.12\5.12.12\msvc2017_64\include\QtCore/qthread.h(151): note: 参见“QThread::exec”的声明 C:\Qt\Qt5.12.12\5.12.12\msvc2017_64\in...

这个错误是因为 QThread::exec() 是一个受保护的成员函数,不能直接在子类中调用。为了解决这个问题,你可以使用 QEventLoop 来替代 exec()

请将 Worker 类的 exec() 函数修改如下:

void Worker::exec()
{
    QEventLoop loop;
    connect(this, &Worker::finished, &loop, &QEventLoop::quit);
    loop.exec();
}

通过使用 QEventLoop,我们可以等待信号发出后退出循环,从而实现与 exec() 相同的效果。

请尝试使用修改后的代码,并重新编译运行。这样应该能够解决之前遇到的错误。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=9158

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?