def __init__(self, parent=None):
        super().__init__(parent)

        self.focus_policy = Qt.StrongFocus

        self.view_label = QLabel()
        self.view_label.style_sheet = 'QLabel { background-color : #313D4A; padding : 10px 10px 10px 10px; }'  # 354A64
        self.view_label.alignment = Qt.AlignCenter

        self.red_color = QColor(205, 65, 65)
        self.green_color = QColor(65, 205, 82)

        transf_widget_size = QSize(28, 12)
        self.translated_widget = ColoredWidget()
        self.rotated_widget = ColoredWidget()
        self.scaled_widget = ColoredWidget()
        self.translated_widget.set_fixed_size(transf_widget_size)
        self.rotated_widget.set_fixed_size(transf_widget_size)
        self.scaled_widget.set_fixed_size(transf_widget_size)
        self.translated_widget.tool_tip = 'translation was applied'
        self.rotated_widget.tool_tip = 'rotation was applied'
        self.scaled_widget.tool_tip = 'scaling was applied'
        self.translated_widget.brush = QBrush(self.green_color)
        self.rotated_widget.brush = QBrush(self.red_color)
        self.scaled_widget.brush = QBrush(self.green_color)
        transformation_layout = QHBoxLayout()
        transformation_layout.add_stretch()
        transformation_layout.add_widget(self.translated_widget)
        transformation_layout.add_widget(self.rotated_widget)
        transformation_layout.add_widget(self.scaled_widget)
        transformation_layout.add_stretch()

        self.info = QPlainTextEdit()
        font = self.info.font
        font.set_family('Courier New')  # monospace
        self.info.font = font
        self.info.read_only = True
        self.info.line_wrap_mode = QPlainTextEdit.NoWrap

        layout = QVBoxLayout(self)
        layout.add_widget(QLabel('Image information'))
        layout.add_widget(self.view_label)
        layout.add_layout(transformation_layout)
        layout.add_widget(self.info)
        layout.contents_margins = QtCore.QMargins(0, 0, 0, 0)
 def _setup_view_widget(self,
                        view_widget,
                        title,
                        model,
                        update_slot,
                        width=250):
     view_widget.set_model(model)
     view_widget.selection_behavior = QtWidgets.QAbstractItemView.SelectRows
     view_widget.selection_model().selectionChanged.connect(update_slot)
     view_widget.edit_triggers = QtWidgets.QAbstractItemView.NoEditTriggers
     count_widget = QLabel()
     count_widget.alignment = Qt.AlignRight
     font = count_widget.font
     font.set_italic(True)
     count_widget.font = font
     widget = QWidget()
     if width > 0:
         widget.set_fixed_width(width)
     layout = QVBoxLayout(widget)
     layout.add_widget(QLabel(title))
     layout.add_widget(view_widget)
     layout.add_widget(count_widget)
     layout.contents_margins = QtCore.QMargins(0, 0, 0, 0)
     return view_widget, count_widget, widget