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()
。
答案 0 :(得分:0)
正如我一直在写这个问题,我注意到我没有在我的派生类中包含Q_OBJECT
。加上这个,信号连接正确。我认为这个问题可能对其他人有用,因为基类的Q_OBJECT
- 宏不是“继承”对我来说也是新的。