diff --git a/plot_screen.py b/plot_screen.py new file mode 100644 index 0000000..8c5a76b --- /dev/null +++ b/plot_screen.py @@ -0,0 +1,36 @@ +from PyQt5.QtWidgets import QHBoxLayout, QPushButton, QVBoxLayout, QWidget +from PyQt5.QtCore import QObject, pyqtSignal, Qt +import matplotlib +matplotlib.use('Qt5Agg') +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 PlotScreen(QWidget): + close_signal = pyqtSignal() + + def __init__(self, parent) -> None: + super().__init__(parent=parent) + sc = MplCanvas(self, width=5, height=4, dpi=100) + sc.axes.plot([0,1,2,3,4], [10,1,20,3,40]) + + self.setLayout(QVBoxLayout()) + self.layout().addWidget(sc) + + close_btn = QPushButton("close") + close_btn.clicked.connect(self.on_close) + + self.layout().addWidget(close_btn) + + def on_close(self): + self.close_signal.emit() + + def plot(self, item): + print("plot!", item) \ No newline at end of file