【问题标题】:Qt - compiler won't recognize "connect"Qt - 编译器无法识别“连接”
【发布时间】: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':未找到标识符”有人知道为什么会这样吗?谢谢!

【问题讨论】:

    标签: qt qt4


    【解决方案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 类的静态成员函数的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 2020-11-13
    • 2020-01-12
    • 1970-01-01
    • 2018-10-28
    • 2013-10-25
    相关资源
    最近更新 更多