c++ - 在没有 QObject::的情况下使用 connect() 和 tr()

标签 c++ qt qobject

我经常看到人们使用 connect() 而没有 QObject::
我怎样才能做到这一点?当我只写 connect() 时,我得到错误:
'connect' 未在此范围内声明

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

最佳答案

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

例如:

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

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

关于c++ - 在没有 QObject::的情况下使用 connect() 和 tr(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28070032/

相关文章:

c++ - 可变参数模板 : One method per template argument

python - 隐藏后显示关闭按钮 (x) (QTabBar)

c++ - 如果在调用 QObject::connect() 之前发出信号,如何避免竞争?

c++ - 一种节省内存的 SHA1 实现

c++ - 我可以在 await_suspend 期间调用 coroutine_handle::resume 吗?

c++ - 用于开放寻址哈希表的高效 C++ API

c++ - 列出tableView中两个表的数据

qt - 当操作系统关闭抗锯齿时,如何绘制 QFont 抗锯齿?

qt - 如何知道哪个 QObject::connect 失败

python - PyQt5 对不从 QObject 继承的类中的信号的支持