QWidget基本クラスからすべて継承する3つの異なるクラスから継承する3つのクラスがあります。例えば:
MyMainWindow : public QMainWindow : public QWidgetMyPushButton : public QPushButton : public QWidgetMyTextEdit : public QTextEdit : public QWidget
そして、最終的には、このようなクラスがさらに増えるでしょう。今やりたいことは、すべてのクラスに共通のメソッドを追加することです。これは、基本クラスに追加する必要があることを意味しますがQWidget、編集することはできません (1 つのメソッドの Qt ソース コードを変更したくありません)。
この種の動作は可能ですか?私はすでに次のようなインターフェースを使用してみました:
class MyTextEdit : public QTextEdit, IMyMethodContainer { ... };
しかし、問題は、 にアクセスする必要がQObject::connect(sender, signal, this, slot);あり、 のサブクラスではないではなくにアクセスしようとしていることIMyMethodContainerです。thisMyTextEditIMyMethodContainerQWidget