众所周知,继承的信号不能用作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;
};
有没有更好/更优雅的解决方案来做到这一点?