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)