Files
NmeaClient/gui/plot_tab.py
T
2026-05-24 11:52:03 +02:00

48 lines
1.3 KiB
Python

import sys, os
_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
_gui = os.path.dirname(os.path.abspath(__file__))
for _p in [_root, _gui]:
if _p not in sys.path:
sys.path.insert(0, _p)
from PyQt5.QtWidgets import (
QWidget, QScrollArea, QGridLayout, QVBoxLayout, QFrame,
)
from PyQt5.QtCore import Qt
from data_model import ReceiverManager
from plot_widget import SinglePlotWidget
class PlotTab(QWidget):
NUM_PLOTS = 8
def __init__(self, model: ReceiverManager):
super().__init__()
outer = QVBoxLayout(self)
outer.setContentsMargins(0, 0, 0, 0)
scroll = QScrollArea()
scroll.setWidgetResizable(True)
scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
container = QWidget()
grid = QGridLayout(container)
grid.setContentsMargins(4, 4, 4, 4)
grid.setSpacing(6)
for i in range(self.NUM_PLOTS):
frame = QFrame()
frame.setFrameShape(QFrame.StyledPanel)
frame.setFrameShadow(QFrame.Raised)
fl = QVBoxLayout(frame)
fl.setContentsMargins(2, 2, 2, 2)
pw = SinglePlotWidget(model)
pw.setMinimumHeight(230)
fl.addWidget(pw)
grid.addWidget(frame, i // 2, i % 2)
scroll.setWidget(container)
outer.addWidget(scroll)