added gui
This commit is contained in:
+51
@@ -0,0 +1,51 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user