@@ -163,10 +163,12 @@ def __init__(self, parent_semester):
163
163
self .score .setRange (0.0 , 100.0 )
164
164
self .score .setSingleStep (0.25 )
165
165
self .score .valueChanged .connect (self .score_changed )
166
+ self .score .valueChanged .connect (self .update_points )
166
167
self .layout .addWidget (self .score )
167
168
168
169
self .credit = QtWidgets .QSpinBox ()
169
170
self .credit .setMaximum (100000 )
171
+ self .credit .valueChanged .connect (self .update_points )
170
172
self .layout .addWidget (self .credit )
171
173
172
174
self .grade = QtWidgets .QComboBox ()
@@ -187,9 +189,11 @@ def __init__(self, parent_semester):
187
189
self .grade .currentIndexChanged .connect (self .grade_changed )
188
190
self .layout .addWidget (self .grade )
189
191
190
- self .points = QtWidgets .QSpinBox ()
192
+ self .points = QtWidgets .QDoubleSpinBox ()
193
+ self .points .setReadOnly (True )
194
+ self .points .setFocusPolicy (QtCore .Qt .FocusPolicy .NoFocus )
195
+ self .points .setButtonSymbols (QtWidgets .QAbstractSpinBox .NoButtons )
191
196
self .points .setMaximum (1000 )
192
- self .points .setDisabled (True )
193
197
self .layout .addWidget (self .points )
194
198
195
199
self .delete_course_button = QtWidgets .QPushButton (
@@ -198,6 +202,14 @@ def __init__(self, parent_semester):
198
202
self .delete_course_button .clicked .connect (self .delete_course )
199
203
self .layout .addWidget (self .delete_course_button )
200
204
205
+ def update_points (self ) -> None :
206
+ """Update the points when the score or the credit units are changed."""
207
+ # TODO Use 4 points scale when the option is selected.
208
+ self .points .setValue (
209
+ common_conversions .score_to_5points_scale (self .score .value ())
210
+ * self .credit .value ()
211
+ )
212
+
201
213
def score_changed (self ) -> None :
202
214
"""Change the grade when the score is changed."""
203
215
try :
0 commit comments