Qt - 编译器无法识别“连接”
Posted
技术标签:
【中文标题】Qt - 编译器无法识别“连接”【英文标题】:Qt - compiler won't recognize "connect" 【发布时间】:2013-09-10 19:43:52 【问题描述】:我正在使用 Qt 4.7,并且我有一部分带有信号和插槽的代码。它的设置和正常一样,即:
#include <QObject>
//Earlier code...
connect(my_thread, SIGNAL(started()), other_thread, SLOT(process()));
connect(my_thread, SIGNAL(finished()), third_thread, SLOT(some_slot()));
//Later code...
但是,当我构建它时,每条语句都会出错,说“C3861:'connect':未找到标识符”有人知道为什么会这样吗?谢谢!
【问题讨论】:
【参考方案1】:如果您在不属于QObject
派生类的代码中使用连接,请在连接前加上QObject::
,这样代码将变为:
//Earlier code...
QObject::connect(my_thread, SIGNAL(started()), other_thread, SLOT(process()));
LE:基本上你调用静态 connect 方法,当你不在 QObject(或 QObject 派生类)的范围内时,你需要完全指定 connect 你想调用,否则编译器找不到它(或者它可能在当前范围内找到错误的连接)
【讨论】:
在不是从QObject
派生的类中使用connect
可以吗?
@Ayxan 是的,没关系。可以从任何可以访问需要连接的 2 个对象的地方进行连接,这可能就是 connect 函数是 QObject 类的静态成员函数的原因。以上是关于Qt - 编译器无法识别“连接”的主要内容,如果未能解决你的问题,请参考以下文章