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