Известно, что унаследованный сигнал нельзя использовать в качестве Q_PROPERTY
NOTIFY
er (https://bugreports.qt.io/browse/QTBUG-7684). В качестве обходного пути я использую дополнительный сигнал в производном классе, который срабатывает при срабатывании базового сигнала. Базовый класс:
class Base : public QObject {
Q_OBJECT
signals:
void mySignal();
};
Для производного класса:
class Derived : public Base {
Q_OBJECT
Q_PROPERTY(int myPropery READ getMyProperty NOTIFY mySignal_inherited)
public:
Derived(){
connect(this, SIGNAL(mySignal()), this, SIGNAL(mySignal_inherited()));
}
int getMyProperty(){ return myProperty; }
signals:
void mySignal_inherited(); ///< DO NOT USE EXPLICITLY
private:
int myProperty;
};
Есть ли лучшее/более элегантное решение для этого?