C++ 在不使用QObject的情况下使用connect()和tr():

C++ 在不使用QObject的情况下使用connect()和tr():,c++,qt,qobject,C++,Qt,Qobject,我经常看到人们使用connect()而不使用QObject:: 我该怎么做?当我只写connect()时,我得到一个错误: “连接”未在此范围内声明 我不能使用使用名称空间QObject,因为QObject是类,而不是名称空间。当您在继承自QObject的类的成员函数中时,可以执行此操作。当您不在继承自QObject的对象的范围内时,应该使用对象实例,而不是作用域 例如: class MyClass : public QObject { ... void myMemberFunc

我经常看到人们使用
connect()
而不使用
QObject::

我该怎么做?当我只写
connect()
时,我得到一个错误:
“连接”未在此范围内声明


我不能使用
使用名称空间QObject
,因为QObject是类,而不是名称空间。

当您在继承自
QObject
的类的成员函数中时,可以执行此操作。当您不在继承自
QObject
的对象的范围内时,应该使用对象实例,而不是作用域

例如:

class MyClass : public QObject
{
    ...
    void myMemberFunction()
    {
        ...
        connect(...);  // Implicitly uses this->connect(...)
        ...
    }
    ...
};

void myNonmemberFunction(MyClass& instanceOfMyClass)
{
    ...
    instanceOfMyClass.connect(...)
    ...
}

那么,在main()中,这是不可能的?我可以做类似于
auto*connect=&QObject::connect?是的,您应该在
main
中使用QObject::connect,因为它不是派生自QObject@Efog啊,你想要
静态
功能吗?那么我不确定你是否能得到正确的函数指针。但是为什么要获取函数指针呢?