Exemple #1
0
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)