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啊,你想要静态
功能吗?那么我不确定你是否能得到正确的函数指针。但是为什么要获取函数指针呢?