Я хотел бы поделиться сигналами и, возможно, реализациями слотов между различными классами, но, похоже, Qt не позволяет этого.
В основном я хотел бы иметь что-то вроде:
class CommonSignals
{
signals:
void mysignal();
};
class A :
public QObject,
public CommonSignals
{
Q_OBJECT
public:
void doSomething()
{
emit mysignal();
}
};
class B :
public QObject,
public CommonSignals
{
Q_OBJECT
public:
B()
{
connect(&a, &A::mysignal, this, &B::mysignal);
}
A a;
};
Так что, когда по какой-то причине А излучает сигнал, B тоже излучает тот же сигнал. Это позволяет избежать бесполезной репликации кода и повысить удобство сопровождения.
Есть идеи?
PS Я пробовал также с виртуальным наследованием, но у меня классические проблемы с qmake