【发布时间】:2016-10-28 14:34:01
【问题描述】:
已知继承信号不能用作Q_PROPERTYNOTIFYer (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;
};
有没有更好/更优雅的解决方案来做到这一点?
【问题讨论】:
-
如果你只是重新声明信号会发生什么?
标签: c++ qt inheritance signals qt5.6