matplotlibのグラフをPyQt5などのGUIに埋め込むとき、次のように書くことが多いですよね
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas class MyMplWidget(FigureCanvas): def __init__(self, parent=None): fig = Figure() self.setParent(parent) ...
これでfigを作っていくとあら不思議、PyQtのMyMplWidgetウィジェットにグラフが現れると。 QWidgetはどこから来たのか、不思議だったのでソースの中を旅してみた
matplotlib.backends.backend_qt5agg.py class FigureCanvasQTAgg(FigureCanvasQTAggBase, FigureCanvasQT, FigureCanvasAgg): ...
3つのclassから継承してるみたい
matplotlib.backends.backend_qt5agg.py class FigureCanvasQTAggBase(object): ...
このclassはドンづまりですな
matplotlib.backends.backend_qt5.py class FigureCanvasQT(QtWidgets.QWidget, FigureCanvasBase): ...
いた!! こやつがQWidgetを継承しておりますぞ閣下!
そんな感じで継承関係を調べていくと、こうなった つまることろ、ちゃんとQWidgetを継承してますね、っていう当たり前のところでした