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, QTabWidget)
from PyQt6.QtGui import QPalette, QColor, QIcon
class MyTabs(QMainWindow):
def __init__(self):
super().__init__()
# Create your custom pages (e.g., TradeView and OrderView)
trade_view = MainWindow()
order_view = Advanced()
# Create a tab widget
tab_widget = QTabWidget(self)
tab_widget.addTab(trade_view, "Main")
tab_widget.addTab(order_view, "Advanced")
# Set the central widget
self.setCentralWidget(tab_widget)
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 = ['Cut', 'Colour', 'Clarity', 'Carat', 'Depth', 'Table', 'X', 'Y', 'Z']
self.input_fields = [QComboBox(self), QComboBox(self), QComboBox(self), QLineEdit(self),
QLineEdit(self), QLineEdit(self), QLineEdit(self), QLineEdit(self),
QLineEdit(self)]
self.input_fields[0].addItems(RegressionModel.cut)
self.input_fields[1].addItems(RegressionModel.colors)
self.input_fields[2].addItems(RegressionModel.clarity)
# add a button to capture all the data
self.calculate_button = QPushButton('Calculate Price', self)
self.calculate_button.clicked.connect(self.update_values)
# Add labels and input fields to the grid layout
for i in range(len(self.labels_text)):
label = QLabel(self.labels_text[i], self)
grid_layout.addWidget(label, 0, i)
grid_layout.addWidget(self.input_fields[i], 1, i)
# Create a plot widget
graphWidget = pg.PlotWidget(self)
graphWidget.setBackground('w')
graphWidget.plot([1, 2, 3], [6, 8, 2])
# Add the plot widget to the grid layout
grid_layout.addWidget(self.calculate_button, 2, 0, 1, 2)
grid_layout.addWidget(graphWidget, 3, 0, 1, 9)
grid_layout.addWidget(QLabel("Predicted Price: ", self), 4, 0, 1, 1)
grid_layout.addWidget(QLabel(str(RegressionModel.price), self), 4, 2, 1, 1)
# Remember to add the predicted price
self.setWindowTitle('Assistance Systems')
self.show()
def update_values(self):
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
menu_items = {0: 'cut', 1: 'color', 2: 'clarity', 3: 'carat', 4: 'depth', 5: 'table',
6: 'x', 7: 'y', 8: 'z'}
for key,value in menu_items.items():
print(key)
if key < 3:
RegressionModel.GUI_selections[value] = self.input_fields[key].currentText()
else:
RegressionModel.GUI_selections[value] = self.input_fields[key].text()
print(RegressionModel.GUI_selections)
class Advanced(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', '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)