0

プロジェクトの 1 つで、インタラクティブなグラフをプロットしたいと考えています。matplotlib グラフを PySide6 アプリケーションに埋め込む方法を理解できず、サンプル コードも見つかりませんでした。

PySide6 に埋め込まれた matplotlib グラフのサンプル コードが必要でした。

私はこのコードを見つけました:

import sys
import matplotlib

matplotlib.use('Qt5Agg')

from PySide6.QtWidgets import QMainWindow, QApplication

from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg
from matplotlib.figure import Figure


class MplCanvas(FigureCanvasQTAgg):

    def __init__(self, parent=None, width=5, height=4, dpi=100):
        fig = Figure(figsize=(width, height), dpi=dpi)
        self.axes = fig.add_subplot(111)
        super(MplCanvas, self).__init__(fig)


class MainWindow(QMainWindow):

    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)

        # Create the maptlotlib FigureCanvas object,
        # which defines a single set of axes as self.axes.
        sc = MplCanvas(self, width=5, height=4, dpi=100)
        sc.axes.plot([0,1,2,3,4], [10,1,20,3,40])
        self.setCentralWidget(sc)

        self.show()


app = QApplication(sys.argv)
w = MainWindow()
app.exec_()

このコードの問題は、実行するたびに次のエラーが発生することです。

Traceback (most recent call last):
  File "", line 35, in <module>
    w = MainWindow()
  File "", line 29, in __init__
    self.setCentralWidget(sc)
TypeError: 'PySide6.QtWidgets.QMainWindow.setCentralWidget' called with wrong argument types:
  PySide6.QtWidgets.QMainWindow.setCentralWidget(MplCanvas)
Supported signatures:
  PySide6.QtWidgets.QMainWindow.setCentralWidget(PySide6.QtWidgets.QWidget)
4

0 に答える 0