class WrapperWidget(QWidget): def __init__(self, plugin): super().__init__() self.plugin = plugin self.setLayout(QHBoxLayout()) self.layout().setContentsMargins(0, 0, 0, 0) self.layout().addStretch() self.inner_layout = QVBoxLayout() self.inner_layout.setContentsMargins(0, 0, 0, 0) self.label_layout = QHBoxLayout() self.temperature_min = QLabel("", parent=self) self.temperature_max = QLabel("", parent=self) self.temperature_max.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.thermal_image = ThermalImage(80, 60, self.plugin, self) self.inner_layout.addStretch() self.inner_layout.addWidget(self.thermal_image) self.label_layout.addWidget(self.temperature_min) self.label_layout.addWidget(self.temperature_max) self.inner_layout.addLayout(self.label_layout) self.thermal_image_bar = ThermalImageBar(80, 20, self.thermal_image, self.plugin, self) self.inner_layout.addWidget(self.thermal_image_bar) self.inner_layout.addStretch() self.layout().addLayout(self.inner_layout) self.layout().addStretch() self.setWindowTitle( 'Thermal Image - Thermal Imaging Bricklet - Brick Viewer ' + BRICKV_VERSION) self.height_offset = 20 + self.label_layout.sizeHint().height( ) + 2 * self.inner_layout.spacing() self.setMinimumSize( 400, 300 + self.height_offset) # To keep pixel size at least 5 def resizeEvent(self, event): super().resizeEvent(event) pixel_size = min(self.width() // 80, (self.height() - self.height_offset) // 60) if pixel_size % 2 == 0: pixel_size -= 1 pixel_size = max(5, pixel_size) self.label_layout.sizeHint().height() self.thermal_image.scale_factor_changed(pixel_size) def closeEvent(self, _event): self.plugin.thermal_image_wrapper = None self.plugin.button_detach_image.setEnabled(True) def minimumSizeHint(self): return QSize(500, 500) def sizeHint(self): return QSize(500, 500)