Es ist bekannt, dass ein geerbtes Signal nicht als Q_PROPERTY
NOTIFY
er (https://bugreports.qt.io/browse/QTBUG-7684) verwendet werden kann. Als Workaround verwende ich ein zusätzliches Signal in der abgeleiteten Klasse, das ausgelöst wird, wenn das Basissignal ausgelöst wird. Die Basisklasse:Umgehung zu Q_PROPERTY NOTIFY mit geerbtem Signal
class Base : public QObject {
Q_OBJECT
signals:
void mySignal();
};
für die abgeleitete Klasse:
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;
};
Gibt es eine bessere/elegantere Lösung, dies zu tun?
Was passiert, wenn Sie nur das Signal neu deklarieren? – peppe