发出的信号不会在派生类中捕获

时间:2015-04-18 10:09:44

标签: qt signals

class Settings : public  QObject
{
    Q_OBJECT
public:
    Settings();
    ~Settings();
    void setValue(QString key, QVariant value);

// [...]
signals:
    void settingsChanged();
// [...]


class ApplicationSettings : public Settings
{
public:
    explicit ApplicationSettings();
    ~ApplicationSettings();

public slots:
    void save();
// [...]

每次我通过基类中的setvalue(...)更改值时, 我做emit settingsChanged()

ApplicationSettings的构造函数中,我说:

connect(this, SIGNAL(settingsChanged()), this, SLOT(save()));

但永远不会调用save()

1 个答案:

答案 0 :(得分:0)

正如我一直在写这个问题,我注意到我没有在我的派生类中包含Q_OBJECT。加上这个,信号连接正确。我认为这个问题可能对其他人有用,因为基类的Q_OBJECT - 宏不是“继承”对我来说也是新的。