from PyQt5.QtWidgets import QGridLayout

import pyqtgraph as pg



class Plot():

    """
    QT bar plot drawing class
    """

    def __init__(self, widget, arr_len = 20, default_val = 20):
        self.__arr_vals = [default_val] * arr_len # TODO: Инициализировать значениями из conf["temperature"]
        self.__x = list(range(1, arr_len + 1))

        self.__plot = pg.plot() #создает объект PlotWidget из библиотеки PyqtGraph
        #PlotWidget — это один из базовых конструктовров класса pyqtgraph, отвечающий за работу с 
        #виджетами, то есть элементами интерфейса, выводящими небольшую информацию

        self.__redraw_plot()
        
        # Создаём grid layout, который отвечает за положение элемента
        layout = QGridLayout()
        layout.addWidget(self.__plot, 0,0)
        widget.setLayout(layout)


    def update(self, newVal: int):
        arr_vals = self.__arr_vals

        arr_vals.pop(0)
        arr_vals.append(newVal)

        self.__redraw_plot()


    def __redraw_plot(self):
        plot = self.__plot

        bargraph = pg.BarGraphItem(x = self.__x, height = self.__arr_vals, width = 0.6, brush ='g')
        plot.clear()
        plot.addItem(bargraph)