You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt6中使用QtConcurrent调用类成员函数编译报错如何解决

问题原因

你使用的是Qt 6版本,而参考的是Qt 5阶段的QtConcurrent::run调用类成员函数的语法,Qt 6对该API做了不兼容的参数顺序调整:

  • Qt 5语法:QtConcurrent::run(对象指针, 成员函数指针, 可选参数...)
  • Qt 6语法:QtConcurrent::run(成员函数指针, 对象指针, 可选参数...)
    你按Qt5语法传参,导致模板参数匹配错误,出现了对应的编译报错。
解决方法
  1. 修改on_pushButton_clicked槽函数里的调用代码,调整参数顺序即可:
// 把成员函数指针放在第一个参数,对象指针放在第二个参数
QtConcurrent::run(&TestClass::start, &this->testClass);
  1. 确保你的项目配置中已经添加了Concurrent模块:
  • 若使用qmake构建,在.pro文件中添加:
QT += concurrent
  • 若使用CMake构建,在CMakeLists.txt中添加对应的依赖:
find_package(Qt6 REQUIRED COMPONENTS Concurrent)
target_link_libraries(你的项目目标名 PRIVATE Qt6::Concurrent)

另外你MainWindow构造函数里声明的局部变量TestClass testClass;是多余代码,和你声明的类成员变量testClass没有关系,建议删除避免混淆。


内容的提问来源于stack exchange,提问作者Yata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:54:07