Newer
Older
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, QDateEdit)
from PyQt6.QtGui import QPalette, QColor, QIcon
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
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', 'Airline', 'Destination', 'Model Start Year']
self.input_fields = [QDateEdit(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].dateChanged.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()