import sys import RegressionModel from pyqtgraph import PlotWidget, plot import pyqtgraph as pg from PyQt6.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout, QGridLayout, QLabel, QPushButton, QSlider, QDateTimeEdit, QLineEdit, QComboBox) from PyQt6.QtGui import QPalette, QColor, QIcon class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowIcon(QIcon("icon.ico")) self.setMinimumSize(720, 640) # Create a central widget central_widget = QWidget(self) self.setCentralWidget(central_widget) # Create a grid layout and set it to the central widget grid_layout = QGridLayout(central_widget) # Create labels and input fields self.labels_text = ['Date and Time', 'Airline', 'Destination', 'Model Start Year'] self.input_fields = [QDateTimeEdit(self), QComboBox(self), QComboBox(self), QComboBox(self)] self.input_fields[1].addItems(RegressionModel.airlines) self.input_fields[2].addItems(RegressionModel.destinations) self.input_fields[3].addItems(list(map(str, RegressionModel.model_years))) # Add labels and input fields to the grid layout for i in range(4): label = QLabel(self.labels_text[i], self) grid_layout.addWidget(label, 0, i) grid_layout.addWidget(self.input_fields[i], 1, i) # Connect signals for i in range(len(self.input_fields)): if i == 0: self.input_fields[i].dateTimeChanged.connect(self.update_values) else: self.input_fields[i].currentTextChanged.connect(self.update_values) # Create a plot widget graphWidget = pg.PlotWidget(self) graphWidget.setBackground('w') graphWidget.plot(RegressionModel.selected_day, RegressionModel.delay) # Add the plot widget to the grid layout grid_layout.addWidget(graphWidget, 2, 0, 1, 4) grid_layout.addWidget(QLabel("EXPECTED DELAY: ", self), 3, 0, 1, 1) # Remember to add the delay value here self.setWindowTitle('Assistance Systems') self.show() def update_values(self): menu_items = {0: "date", 1: "airline", 2: "destination", 3: "years to model"} sender = self.sender() for i in range(4): if sender == self.input_fields[i]: RegressionModel.GUI_selections[menu_items[i]] = sender.currentText() if i != 0 \ else sender.dateTime() print(RegressionModel.GUI_selections[menu_items[i]]) app = QApplication(sys.argv) window = MainWindow() window.show() app.exec()