【问题标题】:Qt connect trying to use parent classQt连接尝试使用父类
【发布时间】:2015-11-19 23:38:47
【问题描述】:

当我运行我的 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)

【问题讨论】:

    标签: c++ qt qobject


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-07
      相关资源
      最近更新 更多