<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>MainWindow</class> <widget class="QMainWindow" name="MainWindow"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>1280</width> <height>720</height> </rect> </property> <property name="minimumSize"> <size> <width>1280</width> <height>720</height> </size> </property> <property name="maximumSize"> <size> <width>3840</width> <height>2160</height> </size> </property> <property name="windowTitle"> <string>Thermostat Control Panel</string> </property> <property name="windowIcon"> <iconset> <normaloff>thermostat-icon-640x640.png</normaloff>thermostat-icon-640x640.png</iconset> </property> <widget class="QWidget" name="main_widget"> <property name="sizePolicy"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> <horstretch>1</horstretch> <verstretch>1</verstretch> </sizepolicy> </property> <layout class="QGridLayout" name="gridLayout_2"> <property name="leftMargin"> <number>3</number> </property> <property name="topMargin"> <number>3</number> </property> <property name="rightMargin"> <number>3</number> </property> <property name="bottomMargin"> <number>3</number> </property> <property name="spacing"> <number>3</number> </property> <item row="0" column="1"> <layout class="QVBoxLayout" name="main_layout"> <property name="spacing"> <number>0</number> </property> <item> <widget class="QFrame" name="graph_group"> <property name="enabled"> <bool>false</bool> </property> <property name="sizePolicy"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> <horstretch>1</horstretch> <verstretch>1</verstretch> </sizepolicy> </property> <property name="frameShape"> <enum>QFrame::StyledPanel</enum> </property> <property name="frameShadow"> <enum>QFrame::Raised</enum> </property> <layout class="QGridLayout" name="graphs_layout" rowstretch="1,1" columnstretch="1,1,1" rowminimumheight="100,100" columnminimumwidth="100,100,100"> <property name="sizeConstraint"> <enum>QLayout::SetDefaultConstraint</enum> </property> <property name="leftMargin"> <number>3</number> </property> <property name="topMargin"> <number>3</number> </property> <property name="rightMargin"> <number>3</number> </property> <property name="bottomMargin"> <number>3</number> </property> <property name="spacing"> <number>2</number> </property> <item row="1" column="0"> <widget class="ParameterTree" name="ch1_tree" native="true"/> </item> <item row="0" column="0"> <widget class="ParameterTree" name="ch0_tree" native="true"/> </item> <item row="1" column="1"> <widget class="LivePlotWidget" name="ch1_t_graph" native="true"/> </item> <item row="0" column="1"> <widget class="LivePlotWidget" name="ch0_t_graph" native="true"/> </item> <item row="0" column="2"> <widget class="LivePlotWidget" name="ch0_i_graph" native="true"/> </item> <item row="1" column="2"> <widget class="LivePlotWidget" name="ch1_i_graph" native="true"/> </item> </layout> </widget> </item> <item> <widget class="QFrame" name="bottom_settings_group"> <property name="sizePolicy"> <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="minimumSize"> <size> <width>0</width> <height>40</height> </size> </property> <property name="maximumSize"> <size> <width>16777215</width> <height>40</height> </size> </property> <property name="frameShape"> <enum>QFrame::StyledPanel</enum> </property> <property name="frameShadow"> <enum>QFrame::Raised</enum> </property> <layout class="QHBoxLayout" name="horizontalLayout_2"> <property name="spacing"> <number>3</number> </property> <property name="leftMargin"> <number>3</number> </property> <property name="topMargin"> <number>3</number> </property> <property name="rightMargin"> <number>3</number> </property> <property name="bottomMargin"> <number>3</number> </property> <item> <layout class="QHBoxLayout" name="settings_layout"> <item> <widget class="QToolButton" name="connect_btn"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Expanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="minimumSize"> <size> <width>100</width> <height>0</height> </size> </property> <property name="maximumSize"> <size> <width>100</width> <height>16777215</height> </size> </property> <property name="baseSize"> <size> <width>100</width> <height>0</height> </size> </property> <property name="text"> <string>Connect</string> </property> <property name="popupMode"> <enum>QToolButton::MenuButtonPopup</enum> </property> <property name="toolButtonStyle"> <enum>Qt::ToolButtonFollowStyle</enum> </property> </widget> </item> <item> <widget class="QLabel" name="status_lbl"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Expanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="minimumSize"> <size> <width>240</width> <height>0</height> </size> </property> <property name="maximumSize"> <size> <width>120</width> <height>16777215</height> </size> </property> <property name="baseSize"> <size> <width>120</width> <height>50</height> </size> </property> <property name="text"> <string>Disconnected</string> </property> </widget> </item> <item> <widget class="QToolButton" name="thermostat_settings"> <property name="enabled"> <bool>false</bool> </property> <property name="text"> <string notr="true">⚙</string> </property> <property name="popupMode"> <enum>QToolButton::InstantPopup</enum> </property> </widget> </item> <item> <widget class="QToolButton" name="plot_settings"> <property name="toolTip"> <string>Plot Settings</string> </property> <property name="text"> <string>📉</string> </property> <property name="popupMode"> <enum>QToolButton::InstantPopup</enum> </property> </widget> </item> <item> <widget class="QLabel" name="background_task_lbl"> <property name="text"> <string>Ready.</string> </property> </widget> </item> <item> <widget class="QtWaitingSpinner" name="loading_spinner" native="true"/> </item> <item> <spacer name="horizontalSpacer"> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> <property name="sizeHint" stdset="0"> <size> <width>40</width> <height>20</height> </size> </property> </spacer> </item> <item> <widget class="QWidget" name="report_group" native="true"> <property name="enabled"> <bool>false</bool> </property> <property name="sizePolicy"> <sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="minimumSize"> <size> <width>40</width> <height>0</height> </size> </property> <layout class="QHBoxLayout" name="horizontalLayout_4"> <property name="spacing"> <number>0</number> </property> <property name="leftMargin"> <number>0</number> </property> <property name="topMargin"> <number>0</number> </property> <property name="rightMargin"> <number>0</number> </property> <property name="bottomMargin"> <number>0</number> </property> <item> <layout class="QHBoxLayout" name="report_layout" stretch="0,1,1,1"> <property name="spacing"> <number>6</number> </property> <property name="sizeConstraint"> <enum>QLayout::SetDefaultConstraint</enum> </property> <property name="leftMargin"> <number>0</number> </property> <item> <widget class="QLabel" name="report_lbl"> <property name="text"> <string>Poll every: </string> </property> <property name="alignment"> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </property> </widget> </item> <item> <widget class="QDoubleSpinBox" name="report_refresh_spin"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Expanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="minimumSize"> <size> <width>70</width> <height>0</height> </size> </property> <property name="maximumSize"> <size> <width>70</width> <height>16777215</height> </size> </property> <property name="baseSize"> <size> <width>70</width> <height>0</height> </size> </property> <property name="suffix"> <string> s</string> </property> <property name="decimals"> <number>1</number> </property> <property name="minimum"> <double>0.100000000000000</double> </property> <property name="singleStep"> <double>0.100000000000000</double> </property> <property name="stepType"> <enum>QAbstractSpinBox::AdaptiveDecimalStepType</enum> </property> <property name="value"> <double>1.000000000000000</double> </property> </widget> </item> <item> <widget class="QCheckBox" name="report_box"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Expanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="maximumSize"> <size> <width>80</width> <height>16777215</height> </size> </property> <property name="baseSize"> <size> <width>80</width> <height>0</height> </size> </property> <property name="text"> <string>Report</string> </property> </widget> </item> <item> <widget class="QPushButton" name="report_apply_btn"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Expanding"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="minimumSize"> <size> <width>80</width> <height>0</height> </size> </property> <property name="maximumSize"> <size> <width>80</width> <height>16777215</height> </size> </property> <property name="baseSize"> <size> <width>80</width> <height>0</height> </size> </property> <property name="text"> <string>Apply</string> </property> </widget> </item> </layout> </item> </layout> </widget> </item> </layout> </item> </layout> </widget> </item> </layout> </item> </layout> </widget> <action name="actionReset"> <property name="text"> <string>Reset</string> </property> <property name="toolTip"> <string>Reset the Thermostat</string> </property> <property name="menuRole"> <enum>QAction::NoRole</enum> </property> </action> <action name="actionEnter_DFU_Mode"> <property name="text"> <string>Enter DFU Mode</string> </property> <property name="toolTip"> <string>Reset thermostat and enter USB device firmware update (DFU) mode</string> </property> <property name="menuRole"> <enum>QAction::NoRole</enum> </property> </action> <action name="actionNetwork_Settings"> <property name="text"> <string>Network Settings</string> </property> <property name="toolTip"> <string>Configure IPv4 address, netmask length, and optional default gateway</string> </property> <property name="menuRole"> <enum>QAction::NoRole</enum> </property> </action> <action name="actionAbout_Thermostat"> <property name="text"> <string>About Thermostat</string> </property> <property name="toolTip"> <string>Show Thermostat hardware revision, and settings related to i</string> </property> <property name="menuRole"> <enum>QAction::NoRole</enum> </property> </action> <action name="actionLoad_all_configs"> <property name="text"> <string>Load all configs</string> </property> <property name="toolTip"> <string>Restore configuration for all channels from flash</string> </property> <property name="menuRole"> <enum>QAction::NoRole</enum> </property> </action> <action name="actionSave_all_configs"> <property name="text"> <string>Save all configs</string> </property> <property name="toolTip"> <string>Save configuration for all channels to flash</string> </property> <property name="menuRole"> <enum>QAction::NoRole</enum> </property> </action> </widget> <customwidgets> <customwidget> <class>ParameterTree</class> <extends>QWidget</extends> <header>pyqtgraph.parametertree</header> <container>1</container> </customwidget> <customwidget> <class>LivePlotWidget</class> <extends>QWidget</extends> <header>pglive.sources.live_plot_widget</header> <container>1</container> </customwidget> <customwidget> <class>QtWaitingSpinner</class> <extends>QWidget</extends> <header>waitingspinnerwidget</header> <container>1</container> </customwidget> </customwidgets> <resources/> <connections/> </ui>