269 lines
17 KiB
Python
269 lines
17 KiB
Python
# Form implementation generated from reading ui file 'tec_qt.ui'
|
|
#
|
|
# Created by: PyQt6 UI code generator 6.5.2
|
|
#
|
|
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
|
|
# run again. Do not edit this file unless you know what you are doing.
|
|
|
|
|
|
from PyQt6 import QtCore, QtGui, QtWidgets
|
|
|
|
|
|
class Ui_MainWindow(object):
|
|
def setupUi(self, MainWindow):
|
|
MainWindow.setObjectName("MainWindow")
|
|
MainWindow.resize(1280, 720)
|
|
MainWindow.setMinimumSize(QtCore.QSize(1280, 720))
|
|
MainWindow.setMaximumSize(QtCore.QSize(3840, 2160))
|
|
icon = QtGui.QIcon()
|
|
icon.addPixmap(QtGui.QPixmap("thermostat-icon-640x640.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off)
|
|
MainWindow.setWindowIcon(icon)
|
|
self.main_widget = QtWidgets.QWidget(parent=MainWindow)
|
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
|
|
sizePolicy.setHorizontalStretch(1)
|
|
sizePolicy.setVerticalStretch(1)
|
|
sizePolicy.setHeightForWidth(self.main_widget.sizePolicy().hasHeightForWidth())
|
|
self.main_widget.setSizePolicy(sizePolicy)
|
|
self.main_widget.setObjectName("main_widget")
|
|
self.gridLayout_2 = QtWidgets.QGridLayout(self.main_widget)
|
|
self.gridLayout_2.setContentsMargins(3, 3, 3, 3)
|
|
self.gridLayout_2.setSpacing(3)
|
|
self.gridLayout_2.setObjectName("gridLayout_2")
|
|
self.main_layout = QtWidgets.QVBoxLayout()
|
|
self.main_layout.setSpacing(0)
|
|
self.main_layout.setObjectName("main_layout")
|
|
self.graph_group = QtWidgets.QFrame(parent=self.main_widget)
|
|
self.graph_group.setEnabled(False)
|
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
|
|
sizePolicy.setHorizontalStretch(1)
|
|
sizePolicy.setVerticalStretch(1)
|
|
sizePolicy.setHeightForWidth(self.graph_group.sizePolicy().hasHeightForWidth())
|
|
self.graph_group.setSizePolicy(sizePolicy)
|
|
self.graph_group.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
|
|
self.graph_group.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
|
|
self.graph_group.setObjectName("graph_group")
|
|
self.graphs_layout = QtWidgets.QGridLayout(self.graph_group)
|
|
self.graphs_layout.setSizeConstraint(QtWidgets.QLayout.SizeConstraint.SetDefaultConstraint)
|
|
self.graphs_layout.setContentsMargins(3, 3, 3, 3)
|
|
self.graphs_layout.setSpacing(2)
|
|
self.graphs_layout.setObjectName("graphs_layout")
|
|
self.ch1_tree = ParameterTree(parent=self.graph_group)
|
|
self.ch1_tree.setObjectName("ch1_tree")
|
|
self.graphs_layout.addWidget(self.ch1_tree, 1, 0, 1, 1)
|
|
self.ch0_tree = ParameterTree(parent=self.graph_group)
|
|
self.ch0_tree.setObjectName("ch0_tree")
|
|
self.graphs_layout.addWidget(self.ch0_tree, 0, 0, 1, 1)
|
|
self.ch1_t_graph = LivePlotWidget(parent=self.graph_group)
|
|
self.ch1_t_graph.setObjectName("ch1_t_graph")
|
|
self.graphs_layout.addWidget(self.ch1_t_graph, 1, 1, 1, 1)
|
|
self.ch0_t_graph = LivePlotWidget(parent=self.graph_group)
|
|
self.ch0_t_graph.setObjectName("ch0_t_graph")
|
|
self.graphs_layout.addWidget(self.ch0_t_graph, 0, 1, 1, 1)
|
|
self.ch0_i_graph = LivePlotWidget(parent=self.graph_group)
|
|
self.ch0_i_graph.setObjectName("ch0_i_graph")
|
|
self.graphs_layout.addWidget(self.ch0_i_graph, 0, 2, 1, 1)
|
|
self.ch1_i_graph = LivePlotWidget(parent=self.graph_group)
|
|
self.ch1_i_graph.setObjectName("ch1_i_graph")
|
|
self.graphs_layout.addWidget(self.ch1_i_graph, 1, 2, 1, 1)
|
|
self.graphs_layout.setColumnMinimumWidth(0, 100)
|
|
self.graphs_layout.setColumnMinimumWidth(1, 100)
|
|
self.graphs_layout.setColumnMinimumWidth(2, 100)
|
|
self.graphs_layout.setRowMinimumHeight(0, 100)
|
|
self.graphs_layout.setRowMinimumHeight(1, 100)
|
|
self.graphs_layout.setColumnStretch(0, 1)
|
|
self.graphs_layout.setColumnStretch(1, 1)
|
|
self.graphs_layout.setColumnStretch(2, 1)
|
|
self.graphs_layout.setRowStretch(0, 1)
|
|
self.graphs_layout.setRowStretch(1, 1)
|
|
self.main_layout.addWidget(self.graph_group)
|
|
self.bottom_settings_group = QtWidgets.QFrame(parent=self.main_widget)
|
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.bottom_settings_group.sizePolicy().hasHeightForWidth())
|
|
self.bottom_settings_group.setSizePolicy(sizePolicy)
|
|
self.bottom_settings_group.setMinimumSize(QtCore.QSize(0, 40))
|
|
self.bottom_settings_group.setMaximumSize(QtCore.QSize(16777215, 40))
|
|
self.bottom_settings_group.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
|
|
self.bottom_settings_group.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
|
|
self.bottom_settings_group.setObjectName("bottom_settings_group")
|
|
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.bottom_settings_group)
|
|
self.horizontalLayout_2.setContentsMargins(3, 3, 3, 3)
|
|
self.horizontalLayout_2.setSpacing(3)
|
|
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
|
self.settings_layout = QtWidgets.QHBoxLayout()
|
|
self.settings_layout.setObjectName("settings_layout")
|
|
self.connect_btn = QtWidgets.QToolButton(parent=self.bottom_settings_group)
|
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Expanding)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.connect_btn.sizePolicy().hasHeightForWidth())
|
|
self.connect_btn.setSizePolicy(sizePolicy)
|
|
self.connect_btn.setMinimumSize(QtCore.QSize(100, 0))
|
|
self.connect_btn.setMaximumSize(QtCore.QSize(100, 16777215))
|
|
self.connect_btn.setBaseSize(QtCore.QSize(100, 0))
|
|
self.connect_btn.setPopupMode(QtWidgets.QToolButton.ToolButtonPopupMode.MenuButtonPopup)
|
|
self.connect_btn.setToolButtonStyle(QtCore.Qt.ToolButtonStyle.ToolButtonFollowStyle)
|
|
self.connect_btn.setObjectName("connect_btn")
|
|
self.settings_layout.addWidget(self.connect_btn)
|
|
self.status_lbl = QtWidgets.QLabel(parent=self.bottom_settings_group)
|
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Expanding)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.status_lbl.sizePolicy().hasHeightForWidth())
|
|
self.status_lbl.setSizePolicy(sizePolicy)
|
|
self.status_lbl.setMinimumSize(QtCore.QSize(240, 0))
|
|
self.status_lbl.setMaximumSize(QtCore.QSize(120, 16777215))
|
|
self.status_lbl.setBaseSize(QtCore.QSize(120, 50))
|
|
self.status_lbl.setObjectName("status_lbl")
|
|
self.settings_layout.addWidget(self.status_lbl)
|
|
self.thermostat_settings = QtWidgets.QToolButton(parent=self.bottom_settings_group)
|
|
self.thermostat_settings.setEnabled(False)
|
|
self.thermostat_settings.setText("⚙")
|
|
self.thermostat_settings.setPopupMode(QtWidgets.QToolButton.ToolButtonPopupMode.InstantPopup)
|
|
self.thermostat_settings.setObjectName("thermostat_settings")
|
|
self.settings_layout.addWidget(self.thermostat_settings)
|
|
self.plot_settings = QtWidgets.QToolButton(parent=self.bottom_settings_group)
|
|
self.plot_settings.setPopupMode(QtWidgets.QToolButton.ToolButtonPopupMode.InstantPopup)
|
|
self.plot_settings.setObjectName("plot_settings")
|
|
self.settings_layout.addWidget(self.plot_settings)
|
|
self.limits_warning = QtWidgets.QLabel(parent=self.bottom_settings_group)
|
|
self.limits_warning.setToolTipDuration(1000000000)
|
|
self.limits_warning.setObjectName("limits_warning")
|
|
self.settings_layout.addWidget(self.limits_warning)
|
|
self.background_task_lbl = QtWidgets.QLabel(parent=self.bottom_settings_group)
|
|
self.background_task_lbl.setObjectName("background_task_lbl")
|
|
self.settings_layout.addWidget(self.background_task_lbl)
|
|
self.loading_spinner = QtWaitingSpinner(parent=self.bottom_settings_group)
|
|
self.loading_spinner.setObjectName("loading_spinner")
|
|
self.settings_layout.addWidget(self.loading_spinner)
|
|
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
|
|
self.settings_layout.addItem(spacerItem)
|
|
self.report_group = QtWidgets.QWidget(parent=self.bottom_settings_group)
|
|
self.report_group.setEnabled(False)
|
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.report_group.sizePolicy().hasHeightForWidth())
|
|
self.report_group.setSizePolicy(sizePolicy)
|
|
self.report_group.setMinimumSize(QtCore.QSize(40, 0))
|
|
self.report_group.setObjectName("report_group")
|
|
self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.report_group)
|
|
self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0)
|
|
self.horizontalLayout_4.setSpacing(0)
|
|
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
|
self.report_layout = QtWidgets.QHBoxLayout()
|
|
self.report_layout.setSizeConstraint(QtWidgets.QLayout.SizeConstraint.SetDefaultConstraint)
|
|
self.report_layout.setContentsMargins(0, -1, -1, -1)
|
|
self.report_layout.setSpacing(6)
|
|
self.report_layout.setObjectName("report_layout")
|
|
self.report_lbl = QtWidgets.QLabel(parent=self.report_group)
|
|
self.report_lbl.setAlignment(QtCore.Qt.AlignmentFlag.AlignRight|QtCore.Qt.AlignmentFlag.AlignTrailing|QtCore.Qt.AlignmentFlag.AlignVCenter)
|
|
self.report_lbl.setObjectName("report_lbl")
|
|
self.report_layout.addWidget(self.report_lbl)
|
|
self.report_refresh_spin = QtWidgets.QDoubleSpinBox(parent=self.report_group)
|
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Expanding)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.report_refresh_spin.sizePolicy().hasHeightForWidth())
|
|
self.report_refresh_spin.setSizePolicy(sizePolicy)
|
|
self.report_refresh_spin.setMinimumSize(QtCore.QSize(70, 0))
|
|
self.report_refresh_spin.setMaximumSize(QtCore.QSize(70, 16777215))
|
|
self.report_refresh_spin.setBaseSize(QtCore.QSize(70, 0))
|
|
self.report_refresh_spin.setDecimals(1)
|
|
self.report_refresh_spin.setMinimum(0.1)
|
|
self.report_refresh_spin.setSingleStep(0.1)
|
|
self.report_refresh_spin.setStepType(QtWidgets.QAbstractSpinBox.StepType.AdaptiveDecimalStepType)
|
|
self.report_refresh_spin.setProperty("value", 1.0)
|
|
self.report_refresh_spin.setObjectName("report_refresh_spin")
|
|
self.report_layout.addWidget(self.report_refresh_spin)
|
|
self.report_box = QtWidgets.QCheckBox(parent=self.report_group)
|
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Expanding)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.report_box.sizePolicy().hasHeightForWidth())
|
|
self.report_box.setSizePolicy(sizePolicy)
|
|
self.report_box.setMaximumSize(QtCore.QSize(80, 16777215))
|
|
self.report_box.setBaseSize(QtCore.QSize(80, 0))
|
|
self.report_box.setObjectName("report_box")
|
|
self.report_layout.addWidget(self.report_box)
|
|
self.report_apply_btn = QtWidgets.QPushButton(parent=self.report_group)
|
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Expanding)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.report_apply_btn.sizePolicy().hasHeightForWidth())
|
|
self.report_apply_btn.setSizePolicy(sizePolicy)
|
|
self.report_apply_btn.setMinimumSize(QtCore.QSize(80, 0))
|
|
self.report_apply_btn.setMaximumSize(QtCore.QSize(80, 16777215))
|
|
self.report_apply_btn.setBaseSize(QtCore.QSize(80, 0))
|
|
self.report_apply_btn.setObjectName("report_apply_btn")
|
|
self.report_layout.addWidget(self.report_apply_btn)
|
|
self.report_layout.setStretch(1, 1)
|
|
self.report_layout.setStretch(2, 1)
|
|
self.report_layout.setStretch(3, 1)
|
|
self.horizontalLayout_4.addLayout(self.report_layout)
|
|
self.settings_layout.addWidget(self.report_group)
|
|
self.horizontalLayout_2.addLayout(self.settings_layout)
|
|
self.main_layout.addWidget(self.bottom_settings_group)
|
|
self.gridLayout_2.addLayout(self.main_layout, 0, 1, 1, 1)
|
|
MainWindow.setCentralWidget(self.main_widget)
|
|
self.actionReset = QtGui.QAction(parent=MainWindow)
|
|
self.actionReset.setMenuRole(QtGui.QAction.MenuRole.NoRole)
|
|
self.actionReset.setObjectName("actionReset")
|
|
self.actionEnter_DFU_Mode = QtGui.QAction(parent=MainWindow)
|
|
self.actionEnter_DFU_Mode.setMenuRole(QtGui.QAction.MenuRole.NoRole)
|
|
self.actionEnter_DFU_Mode.setObjectName("actionEnter_DFU_Mode")
|
|
self.actionNetwork_Settings = QtGui.QAction(parent=MainWindow)
|
|
self.actionNetwork_Settings.setMenuRole(QtGui.QAction.MenuRole.NoRole)
|
|
self.actionNetwork_Settings.setObjectName("actionNetwork_Settings")
|
|
self.actionAbout_Thermostat = QtGui.QAction(parent=MainWindow)
|
|
self.actionAbout_Thermostat.setMenuRole(QtGui.QAction.MenuRole.NoRole)
|
|
self.actionAbout_Thermostat.setObjectName("actionAbout_Thermostat")
|
|
self.actionLoad_all_configs = QtGui.QAction(parent=MainWindow)
|
|
self.actionLoad_all_configs.setMenuRole(QtGui.QAction.MenuRole.NoRole)
|
|
self.actionLoad_all_configs.setObjectName("actionLoad_all_configs")
|
|
self.actionSave_all_configs = QtGui.QAction(parent=MainWindow)
|
|
self.actionSave_all_configs.setMenuRole(QtGui.QAction.MenuRole.NoRole)
|
|
self.actionSave_all_configs.setObjectName("actionSave_all_configs")
|
|
|
|
self.retranslateUi(MainWindow)
|
|
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
|
|
|
def retranslateUi(self, MainWindow):
|
|
_translate = QtCore.QCoreApplication.translate
|
|
MainWindow.setWindowTitle(_translate("MainWindow", "Thermostat Control Panel"))
|
|
self.connect_btn.setText(_translate("MainWindow", "Connect"))
|
|
self.status_lbl.setText(_translate("MainWindow", "Disconnected"))
|
|
self.plot_settings.setToolTip(_translate("MainWindow", "Plot Settings"))
|
|
self.plot_settings.setText(_translate("MainWindow", "📉"))
|
|
self.background_task_lbl.setText(_translate("MainWindow", "Ready."))
|
|
self.report_lbl.setText(_translate("MainWindow", "Poll every: "))
|
|
self.report_refresh_spin.setSuffix(_translate("MainWindow", " s"))
|
|
self.report_box.setText(_translate("MainWindow", "Report"))
|
|
self.report_apply_btn.setText(_translate("MainWindow", "Apply"))
|
|
self.actionReset.setText(_translate("MainWindow", "Reset"))
|
|
self.actionReset.setToolTip(_translate("MainWindow", "Reset the Thermostat"))
|
|
self.actionEnter_DFU_Mode.setText(_translate("MainWindow", "Enter DFU Mode"))
|
|
self.actionEnter_DFU_Mode.setToolTip(_translate("MainWindow", "Reset thermostat and enter USB device firmware update (DFU) mode"))
|
|
self.actionNetwork_Settings.setText(_translate("MainWindow", "Network Settings"))
|
|
self.actionNetwork_Settings.setToolTip(_translate("MainWindow", "Configure IPv4 address, netmask length, and optional default gateway"))
|
|
self.actionAbout_Thermostat.setText(_translate("MainWindow", "About Thermostat"))
|
|
self.actionAbout_Thermostat.setToolTip(_translate("MainWindow", "Show Thermostat hardware revision, and settings related to i"))
|
|
self.actionLoad_all_configs.setText(_translate("MainWindow", "Load all channel configs from flash"))
|
|
self.actionLoad_all_configs.setToolTip(_translate("MainWindow", "Restore configuration for all channels from flash"))
|
|
self.actionSave_all_configs.setText(_translate("MainWindow", "Save all channel configs to flash"))
|
|
self.actionSave_all_configs.setToolTip(_translate("MainWindow", "Save configuration for all channels to flash"))
|
|
from pglive.sources.live_plot_widget import LivePlotWidget
|
|
from pyqtgraph.parametertree import ParameterTree
|
|
from waitingspinnerwidget import QtWaitingSpinner
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import sys
|
|
app = QtWidgets.QApplication(sys.argv)
|
|
MainWindow = QtWidgets.QMainWindow()
|
|
ui = Ui_MainWindow()
|
|
ui.setupUi(MainWindow)
|
|
MainWindow.show()
|
|
sys.exit(app.exec())
|