def _init_widgets(self, layout_object):
        """Initialize widgets"""
        lbl_title = QLabel()
        lbl_title.setStyleSheet(
            'padding: 2px; font-weight: bold; background-color: '
            'rgb(200, 200, 200);')
        lbl_title.setText(self.tr('QR Code'))
        self._cd_value_widget = CodeValueWidget(self)
        self._cd_value_widget.value_changed.connect(
            self._on_code_value_changed)
        value_groupbox = QgsCollapsibleGroupBoxBasic(self.tr('Data'))
        gp_layout = QVBoxLayout()
        gp_layout.setContentsMargins(0, 0, 0, 0)
        gp_layout.addWidget(self._cd_value_widget)
        value_groupbox.setLayout(gp_layout)

        # Item appearance
        appearance_groupbox = QgsCollapsibleGroupBoxBasic(
            self.tr('Appearance'))
        appearance_layout = QGridLayout()

        # Data color
        lbl_data_clr = QLabel(self.tr('Data color'))
        self._data_clr_btn = QgsColorButton()
        self._data_clr_btn.setColorDialogTitle(self.tr('Select Data Color'))
        self._data_clr_btn.setContext('composer')
        self._data_clr_btn.setAllowOpacity(False)
        self._data_clr_btn.colorChanged.connect(self.on_data_color_changed)
        appearance_layout.addWidget(lbl_data_clr, 0, 0)
        appearance_layout.addWidget(self._data_clr_btn, 0, 1)
        appearance_layout.setColumnStretch(2, 1)

        # Background color
        lbl_background_clr = QLabel(self.tr('Background color'))
        self._background_clr_btn = QgsColorButton()
        self._background_clr_btn.setColorDialogTitle(
            self.tr('Select Background Color'))
        self._background_clr_btn.setContext('composer')
        self._background_clr_btn.setAllowOpacity(False)
        self._background_clr_btn.colorChanged.connect(
            self.on_background_color_changed)
        appearance_layout.addWidget(lbl_background_clr, 1, 0)
        appearance_layout.addWidget(self._background_clr_btn, 1, 1)

        appearance_groupbox.setLayout(appearance_layout)

        # Properties widget
        self._prop_widget = QgsLayoutItemPropertiesWidget(self, layout_object)
        self._prop_widget.showBackgroundGroup(False)

        # Add widgets to layout
        layout = QVBoxLayout()
        layout.setContentsMargins(0, 0, 0, 0)
        layout.addWidget(lbl_title)
        layout.addWidget(value_groupbox)
        layout.addWidget(appearance_groupbox)
        layout.addWidget(self._prop_widget)

        # Set layout
        self.setLayout(layout)
    def _init_widgets(self, layout_object):
        """Initialize widgets"""
        lbl_title = QLabel()
        lbl_title.setStyleSheet(
            'padding: 2px; font-weight: bold; background-color: '
            'rgb(200, 200, 200);')
        lbl_title.setText(self.tr('Linear Barcode'))
        self._cd_value_widget = CodeValueWidget(self)
        self._cd_value_widget.value_changed.connect(
            self._on_code_value_changed)
        value_groupbox = QgsCollapsibleGroupBoxBasic(self.tr('Data'))
        gp_layout = QVBoxLayout()
        gp_layout.setContentsMargins(0, 0, 0, 0)
        gp_layout.addWidget(self._cd_value_widget)
        value_groupbox.setLayout(gp_layout)

        # Barcode properties
        barcode_props_groupbox = QgsCollapsibleGroupBoxBasic(
            self.tr('Properties'))
        barcode_props_layout = QGridLayout()

        lbl_barcode_type = QLabel(self.tr('Linear barcode type'))
        self._barcode_cbo = LinearMetadataCombobox()
        self._barcode_cbo.metadata_changed.connect(
            self._on_linear_type_changed)
        barcode_props_layout.addWidget(lbl_barcode_type, 0, 0)
        barcode_props_layout.addWidget(self._barcode_cbo, 0, 1)
        self._chk_checksum = QCheckBox(self.tr('Add checksum'))
        self._chk_checksum.stateChanged.connect(self._on_add_checksum)
        barcode_props_layout.addWidget(self._chk_checksum, 1, 0, 1, 2)
        self._chk_render_txt = QCheckBox(self.tr('Render barcode text'))
        self._chk_render_txt.stateChanged.connect(self._on_render_text_changed)
        barcode_props_layout.addWidget(self._chk_render_txt, 2, 0, 1, 2)
        barcode_props_layout.setColumnStretch(1, 1)

        barcode_props_groupbox.setLayout(barcode_props_layout)

        # Properties widget
        self._prop_widget = QgsLayoutItemPropertiesWidget(self, layout_object)
        self._prop_widget.showBackgroundGroup(False)

        # Add widgets to layout
        layout = QVBoxLayout()
        layout.setContentsMargins(0, 0, 0, 0)
        layout.addWidget(lbl_title)
        layout.addWidget(barcode_props_groupbox)
        layout.addWidget(value_groupbox)
        layout.addWidget(self._prop_widget)

        # Set layout
        self.setLayout(layout)