Files
2026-05-24 11:52:03 +02:00

52 lines
1.4 KiB
Python

import sys, os
# Path setup — works both as `python gui/main.py` and `python -m gui.main`
for _p in [
os.path.dirname(os.path.dirname(os.path.abspath(__file__))), # nmea_client/
os.path.dirname(os.path.abspath(__file__)), # nmea_client/gui/
]:
if _p not in sys.path:
sys.path.insert(0, _p)
from PyQt5.QtWidgets import QApplication, QMainWindow, QTabWidget
from PyQt5.QtGui import QIcon
from data_model import ReceiverManager
from connection_tab import ConnectionTab
from sky_tab import SkyTab
from plot_tab import PlotTab
class MainWindow(QMainWindow):
def __init__(self, model: ReceiverManager):
super().__init__()
self._model = model
self.setWindowTitle("GNSS Monitor")
self.resize(1400, 900)
tabs = QTabWidget()
tabs.addTab(ConnectionTab(model), "Connection")
tabs.addTab(SkyTab(model), "Sky")
tabs.addTab(PlotTab(model), "Plot")
self.setCentralWidget(tabs)
def closeEvent(self, event):
for rid in list(self._model.get_receiver_ids()):
self._model.disconnect_receiver(rid)
event.accept()
def main():
app = QApplication(sys.argv)
app.setStyle('Fusion')
model = ReceiverManager()
win = MainWindow(model)
win.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()