def editorEvent(self, event, model, option, index):
     if event.type() == QEvent.MouseButtonRelease and index.column(
     ) == 0 and index.flags() & Qt.ItemIsUserCheckable:
         toggled = Qt.Checked if model.data(
             index, Qt.CheckStateRole) == QVariant(
                 Qt.Unchecked) else Qt.Unchecked
         return model.setData(index, toggled, Qt.CheckStateRole)
     __event = QItemDelegate(self).editorEvent(event, model, option, index)
     animate_requested = False
     if event.type() == QEvent.MouseButtonRelease and self.animatable:
         if self.rowAnimator.row == index.row():
             epos = event.pos()
             if self.rowAnimator.hoverLinkFilter.link_rect.contains(
                     QPoint(epos.x(),
                            epos.y() + 32)):
                 url = QUrl(model.data(index, HomepageRole).toString())
                 QDesktopServices.openUrl(url)
                 return __event
             elif self.rowAnimator.hoverLinkFilter.button_rect.contains(
                     epos, True):
                 self.showPackageDetails(model, index)
                 return __event
         animate_requested = True
     elif event.type() == QEvent.KeyPress and self.animatable:
         # KeyCode 32 : Space key
         if event.key() == 32 and index.column(
         ) == index.model().columnCount() - 1:
             animate_requested = True
     if not unicode(model.data(
             index,
             DescriptionRole).toString()) == '' and animate_requested:
         self.rowAnimator.animate(index.row())
     return __event
Beispiel #2
0
    def init_validator(self):
        modes = ['vent', 'foot', 'bil', 'defrost', 'defog', 'trl', 'hil']
        for i in modes:
            edit = self.RPM_tab.findChild(QLineEdit, i + '_edit')
            edit.setValidator(self.int_validator)
            edit.setMaxLength(4)

        value_delegate = QItemDelegate(self)
        value_delegate.createEditor = self.createEditor
        self.valve_table.setItemDelegateForColumn(1, value_delegate)
Beispiel #3
0
    def editorEvent(self, event, model, option, index):
        #paket seçim olayında hata var seçim olayı gerçekleşiyor ama packageList sonraki seçimde görüyor
        #geçici çözümle giderildi tamamen çözülmeli
        if event.type() == QEvent.MouseButtonRelease and index.column(
        ) == 0 and index.flags() & Qt.ItemIsUserCheckable:
            toggled = Qt.Checked if model.data(
                index, Qt.CheckStateRole) == QVariant(
                    Qt.Unchecked) else Qt.Unchecked
            self.packageSelected.emit(bool(toggled))
            return model.setData(index, toggled, Qt.CheckStateRole)

        __event = QItemDelegate(self).editorEvent(event, model, option, index)

        animate_requested = False
        if event.type() == QEvent.MouseButtonRelease and self.animatable:
            if self.rowAnimator.row == index.row():
                epos = event.pos()
                if self.rowAnimator.hoverLinkFilter.link_rect.contains(
                        QPoint(epos.x(),
                               epos.y() + 32)):
                    url = QUrl(QVariant.value(model.data(index, HomepageRole)))
                    QDesktopServices.openUrl(url)
                    return __event
                elif self.rowAnimator.hoverLinkFilter.button_rect.contains(
                        epos, True):
                    self.showPackageDetails(model, index)
                    return __event
            animate_requested = True
        elif event.type() == QEvent.KeyPress and self.animatable:
            # KeyCode 32 : Space key
            if event.key() == 32 and index.column(
            ) == index.model().columnCount() - 1:
                animate_requested = True
        if not QVariant.value(model.data(
                index, DescriptionRole)) == '' and animate_requested:
            self.rowAnimator.animate(index.row())
        return __event
Beispiel #4
0
    def __init__(
        self,
        model: QAbstractItemModel,
        signal_map: Optional[dict[type[QWidget], str]] = None,
    ) -> None:
        super().__init__()
        self._model = model
        self._mappings: list[tuple[QWidget, int]] = []
        self._row_idx: Optional[int] = None
        self._item_delegate = QItemDelegate(self)
        self._ignoring = 0

        self._signal_map: dict[type[QWidget], str] = {
            QCheckBox: "clicked",
            QSpinBox: "valueChanged",
            QDoubleSpinBox: "valueChanged",
            QComboBox: "currentTextChanged",
            ColorPicker: "changed",
            TimeEdit: "value_changed",
        }
        if signal_map:
            self._signal_map.update(signal_map)

        model.dataChanged.connect(self._model_data_change)