Remove PyQt5.Qwt dependency from the GUI client
PyQt5.Qwt isn't pip-installable; it only existed via the apt package python3-pyqt5.qwt, so pip-installing client/requirements.txt's plain PyPI PyQt5 always crashed with "No module named 'PyQt5.Qwt'". Qwt was only used for 3 QwtSlider widgets (Slider_temp_soll, Slider_pwr_soll, Slider_speed_soll). Swap them for stock QSlider in brewpi.ui, regenerate brewpi_win.py via pyuic5, and update brewpi_gui.py's setLowerBound/setUpperBound calls to QSlider's integer-only setMinimum/setMaximum. The GUI now runs from a plain `pip install -r client/requirements.txt` venv with no system PyQt5 packages required. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -105,7 +105,7 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
if 'Temp' in submsg:
|
||||
self.lcdNumber_temp_soll.display(str(submsg['Temp']))
|
||||
if self.slider_temp_soll_initial_update:
|
||||
self.Slider_temp_soll.setValue(submsg['Temp'])
|
||||
self.Slider_temp_soll.setValue(int(round(submsg['Temp'])))
|
||||
self.slider_temp_soll_initial_update = False
|
||||
if 'Rate' in submsg:
|
||||
subsubmsg = submsg['Rate']
|
||||
@@ -133,14 +133,14 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
elif "Power" in key:
|
||||
self.lcdNumber_power_heater.display(msg['Power'])
|
||||
if self.slider_pwr_initial_update:
|
||||
self.Slider_pwr_soll.setValue(msg['Power'])
|
||||
self.Slider_pwr_soll.setValue(int(round(msg['Power'])))
|
||||
self.slider_pwr_initial_update = False
|
||||
elif "Capabilities" in key:
|
||||
submsg = msg['Capabilities']
|
||||
if "Power" in submsg:
|
||||
submsg = submsg['Power']
|
||||
self.Slider_pwr_soll.setLowerBound(submsg['Min'])
|
||||
self.Slider_pwr_soll.setUpperBound(submsg['Max'])
|
||||
self.Slider_pwr_soll.setMinimum(int(submsg['Min']))
|
||||
self.Slider_pwr_soll.setMaximum(int(submsg['Max']))
|
||||
|
||||
def on_stirrer_changed(self, msg):
|
||||
print("on_stirrer_changed {}".format(msg))
|
||||
@@ -151,14 +151,14 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||
self.checkbox_stirrer_activate_initial_update = False
|
||||
elif "Speed" in key:
|
||||
if self.slider_speed_initial_update:
|
||||
self.Slider_speed_soll.setValue(msg['Speed'])
|
||||
self.Slider_speed_soll.setValue(int(round(msg['Speed'])))
|
||||
self.slider_speed_initial_update = False
|
||||
elif "Capabilities" in key:
|
||||
submsg = msg['Capabilities']
|
||||
if "Power" in submsg:
|
||||
submsg = submsg['Power']
|
||||
self.Slider_speed_soll.setLowerBound(submsg['Min'])
|
||||
self.Slider_speed_soll.setUpperBound(submsg['Max'])
|
||||
self.Slider_speed_soll.setMinimum(int(submsg['Min']))
|
||||
self.Slider_speed_soll.setMaximum(int(submsg['Max']))
|
||||
|
||||
def closeEvent(self, event):
|
||||
print("Exitting gracefully!")
|
||||
|
||||
Reference in New Issue
Block a user