pyqt - 在QLineEdit

时间:2016-11-13 04:03:48

标签: python qt python-3.x pyqt pyqt5

我希望有一个QCompleter只能在QLineEdit中输入一定数量的字母后开始预测。我从QLineEdit和QCompleter编写了简单的类,但我不知道如何添加这个功能。

class Completer(QtWidgets.QCompleter):

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

        self.setCaseSensitivity(Qt.CaseInsensitive)
        self.setCompletionMode(QtWidgets.QCompleter.PopupCompletion)
        self.setFilterMode(Qt.MatchStartsWith)


class LineEditCompleter(QtWidgets.QLineEdit):

    def __init__(self, parent=None):
        super(LineEditCompleter, self).__init__(parent)
        self.completer = Completer(self)
        self.setCompleter(self.completer)

如果文本的长度小于3,我尝试将textChangedQLineEdit覆盖到setCompleter(None),如果超过3,则尝试再次激活它但是它不起作用,它如果我使用setCompleter(None),似乎删除了完成者。

是否有可能实现这一目标?

感谢。

1 个答案:

答案 0 :(得分:0)

有很好的解释blog,但是你需要重新实现QlineEdit和QCompleter以获得你想要的东西。如果您无法从该博客帖子中找到您所看到的内容,请告诉我们。