import pyqtgraph as pg
from PyQt5 import QtWidgets as qtw
class CustomPlotItem(qtw.QFrame):
close_signal = qtc.pyqtSignal(bool)
def __init__(self, data, plot_settings):
super().__init__()
self.plot_settings = plot_settings
self.plot_data = data
self.plot_num = plot_settings.get('plot_num')
self.title = f'Plot {self.plot_num}'
self.counter = 0
self.setAcceptDrops(False)
background_color = pg.mkColor(pg.getConfigOption('background'))
self.setLayout(qtw.QHBoxLayout())
self.layout().setContentsMargins(9, 0, 0, 0)
self.layout().setSpacing(0)
pal = self.palette()
pal.setColor(self.backgroundRole(), background_color)
self.setPalette(pal)
self.setAutoFillBackground(True)
self.settings_btn = OverlayButton('./frontend/icons/settings.png', (24, 24), '#545454')
self.close_btn = OverlayButton('./frontend/icons/close-button.png', (24, 24), '#545454')
self.overlay_frame = qtw.QFrame()
self.overlay_frame.setLayout(qtw.QVBoxLayout())
self.overlay_frame.layout().setContentsMargins(0, 0, 0, 0)
self.overlay_frame.layout().setSpacing(0)
self.overlay_frame.layout().addWidget(self.close_btn)
self.overlay_frame.layout().addWidget(self.settings_btn)
self.over = qtw.QFrame()
self.over.setLayout(qtw.QHBoxLayout())
self.over.layout().addWidget(self.overlay_frame, 0, qtc.Qt.AlignmentFlag.AlignTop)
self.over.layout().setContentsMargins(0, 0, 0, 0)
self.over.layout().setSpacing(0)
self.over.setStyleSheet(f"background-color: {background_color.name()}")
self.pw = pg.PlotWidget(title=self.title)
self.pw.getPlotItem().setAxisItems({"bottom": pg.DateAxisItem()})
self.pw.centralWidget.layout.setContentsMargins(0, 0, 0, 0)
self.pw.showGrid(x=True, y=True)
self.layout().addWidget(self.pw)
self.layout().addWidget(self.over)