This repository has been archived by the owner on Oct 1, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.py
123 lines (96 loc) · 3.91 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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
import sys
from PyQt5 import QtWidgets
import UI.guifunctionality as gf
import UI.gui as gui
import UI.variables as variables
import UI.databases as databases
import UI.simsettings as simsettings
import databaseclass as db
import Models.solomonmodel as solomonmodel
VERSION = 0.1
preamble = "Waterloo Rocketry - OpenThrust " + str(VERSION)
preamble+= "\nThank you for using this program, please see"
preamble+= " LICENSE file for licensing information."
preamble+= "\nCheck out our github and team site under"
preamble+= " About in the menu bar."
def buttonsConnect():
# Toolbar Buttons
MWindow.actionSet_Variables.triggered.connect(
lambda: gf.setVariablesButtonClicked(VariablesWindow, VarWindow)
)
MWindow.actionLoad_Databases.triggered.connect(
lambda: gf.loadDatabasesButtonClicked(DatabasesWindow, DbWindow)
)
MWindow.actionGitHub.triggered.connect(
lambda: gf.openGithub()
)
MWindow.actionTeam_Site.triggered.connect(
lambda: gf.openTeamSite()
)
# Main window buttons
MWindow.setVariablesButton.clicked.connect(
lambda: gf.setVariablesButtonClicked(VariablesWindow,VarWindow)
)
MWindow.loadDatabasesButton.clicked.connect(
lambda: gf.loadDatabasesButtonClicked(DatabasesWindow, DbWindow)
)
MWindow.startButton.clicked.connect(
lambda: gf.startButtonClicked(MainWindow, MWindow, ModelInstance)
)
MWindow.cancelButton.clicked.connect(
lambda: gf.cancelButtonClicked(MainWindow, MWindow, ModelInstance)
)
MWindow.resetButton.clicked.connect(
lambda: gf.resetButtonClicked(MainWindow, MWindow, ModelInstance)
)
MWindow.simSettingsButton.clicked.connect(
lambda: gf.simSettingsButtonClicked(SimSettingWindow, SsWindow)
)
# Variables window buttons
VarWindow.buttonBox.accepted.connect(
lambda: gf.variablesWindowSaveButtonClicked(VarWindow)
)
VarWindow.buttonBox.rejected.connect(lambda: VariablesWindow.close())
# Simulation settings window buttons
SsWindow.buttonBox.accepted.connect(
lambda: gf.simSettingsSaveButtonClicked(SimSettingWindow, SsWindow, ModelInstance)
)
# Databases window buttons
# DbWindow.buttonBox.accepted.connect(
# lambda: gf.dataBasesSaveButtonClicked()
# )
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
# Set initial databases
dataBases = db.DataBases()
dataBases.setPathNIST("N2O_100_1000PSI.txt")
dataBases.setPathRPA("RPA_Output_Table.csv")
# Initial set up of GUI windows
MainWindow = QtWidgets.QMainWindow()
MWindow = gui.Ui_MainWindow()
MWindow.setupUi(MainWindow)
VariablesWindow = QtWidgets.QMainWindow()
VarWindow = variables.Ui_VariablesWindow()
VarWindow.setupUi(VariablesWindow)
DatabasesWindow = QtWidgets.QMainWindow()
DbWindow = databases.Ui_DatabasesWindow()
DbWindow.setupUi(DatabasesWindow)
SimSettingWindow = QtWidgets.QMainWindow()
SsWindow = simsettings.Ui_MainWindow()
SsWindow.setupUi(SimSettingWindow)
ModelInstance = solomonmodel.SolomonModel(1,273,15, 0, 0, dataBases)
# Adding the plotter to the GUI
plotter = QtWidgets.QVBoxLayout(MWindow.widget)
dc = gf.DynamicMplCanvas(ModelInstance, MWindow.widget,
width=5, height=4, dpi=100
)
plotter.addWidget(dc)
ModelInstance.addGui(app, dc, MWindow.progressBar, MWindow.textBrowser)
# Connecting buttons
buttonsConnect()
gf.grabSetSettings(VarWindow)
# Setting initial text
gf.printToGui(preamble, MWindow.textBrowser)
MWindow.statusbar.showMessage("Version: " + str(VERSION))
MainWindow.show()
sys.exit(app.exec_())