QMetaObject :: indexOfMethod()找不到插槽

时间:2018-12-28 13:17:59

标签: c++ qt

此代码在第二个Q_ASSERT上失败。

class A : public QObject
{
Q_OBJECT

public:
    void function(QObject *receiveOb, const char *slot)
    {
        Q_ASSERT((bool)connect(this, SIGNAL(mySignal(int)), receiveOb, SLOT(mySlot(int))));
        Q_ASSERT(receiveOb->metaObject()->indexOfMethod(slot) != -1);
    }
signals:
    void mySignal(int param);
};

class MainClass : public QObject
{
Q_OBJECT
    A a;

public slots:
    void mySlot(int param)
    {
        param++;
    }

public:
    MainClass(QObject *papi = Q_NULLPTR) : QObject(papi)
    {   }
    void doIt()
    {
        a.function(this, SLOT(mySlot(int)));
    }
};

如我所见,如果connect能够查找slot方法,我可以做同样的事情。

我在做什么错? 我还可以做哪些其他检查来找出我的错误?

0 个答案:

没有答案