繁体   English   中英

Qt连接尝试使用父类

[英]Qt connect trying to use parent class

当我运行Qt程序时,会收到以下通知:

QObject::connect: No such slot SbSetting::checkbox_stateChanged(int)
QObject::connect:  (sender name:   'cbEnableRetries')

输出正确,没有任何插槽SbSetting::checkbox_stateChanged(int) 但这不是我要连接的内容。

我有一个SbSetting类。 它不是顶级类,但我认为更高级别是无关紧要的(它是QObject。)。 然后,我有一个类IoRetrySetting,它继承自SbSetting( class IoRetrySetting : public SbSetting )。 这是IoRetrySetting的样子。

IoRetrySetting::IoRetrySetting([...],
                               QCheckBox *cb,
                               [...])
    : checkbox(cb),
      SbSetting([...])
{
    if(!cb)
        new std::invalid_argument("cb cannot be null");

    connect(cb, SIGNAL(stateChanged(int)),
            this, SLOT(checkbox_stateChanged(int))); // <------  FAILS HERE
}

void IoRetrySetting::checkbox_stateChanged(int state)
{
    //...
}

为什么在我调用connect时Qt在父类中查找? 为什么不连接到IoRetrySetting::checkbox_stateChanged(int)

我忘记了对类声明的Q_OBJECT 另请参阅: https : //forum.qt.io/topic/54289/qobject-connect-no-such-slot-qwidget-showtimee

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM