标签上的QCombox验证

时间:2018-11-12 07:55:04

标签: python python-3.x pyqt pyqt5

当文本与模型中的任何条目都不匹配并且我按Enter键时,我正在使用带有完成器和模型的可编辑QCombobox,并且清除了Combobox。当我使用Tab时,不检查条目是否在Model中,而是将其保留并写入通过QDataWidgetMapper映射到它的模型中。我尝试通过子类化ComboBox并为它没有起作用的两个方法引入KeyEventFilter和/或eventFilter来解决问题,而这两个方法都没有被发现。通过捕获enter事件,keyeventFilter取得了一些成功。

def eventFilter(self, obj, e):
        if e.type() == QEvent.ShortcutOverride:
            logger.debug(e.key(), Qt.Key_Tab)
            if e.key() == Qt.Key_Tab:
                        if not self.model().contains(self.currentText()):
                            # contains is PseudoCode I use something else 
                            # from my subclass of the QAbstractTableModel
                            self.setCurrentText("")
                            return True
            else:
                pass
        else:
            pass
        return QComboBox.eventFilter(self, obj, e)

我找不到任何解决方案。也许您可以帮助C代码就可以了。

0 个答案:

没有答案