title: Closest solution to multiple inheritance through QObject subclasses
body: <p>I have multiple QObject subclasses which should act as interface classes and be implemented by (inherited by) some other classes. For example let <code>class A : virtual public QObject</code> and  <code>class B : virtual public QObject</code> be interface classes. I need a <code>QDialog</code> object to implement their behavior like: <code>class X: public QDialog, A, B</code>.</p>
  
  <p>Unfortunately I did not read documentation carefully at design time and now I realized two facts: </p>
  
  <ol>
  <li>implementing slots as pure virtual member functions is not possible because moc-generated code will need to call them.</li>
  <li>Multiple inheritance is not supported for QObject-derived classes. That's not a diamond thing. It's because moc-generated code can't <code>static_cast</code> a virtual <code>QObject</code> object to a <code>A*</code> via virtual base. (That's what compiler says!)</li>
  </ol>
  
  <p>What is best possible alternative design to which affects code as less as possible? I can think of macro hacks. Maybe a macro in base class (like <code>Q_OBJECT</code>) to copy all members, signals, slots of base to derived class?</p>
  
  <p><strong>Note</strong> That's really bad that <code>QObject</code>s can't be inherited multiple times. Isn't? </p>