我希望有一个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,我尝试将textChanged
从QLineEdit
覆盖到setCompleter(None)
,如果超过3,则尝试再次激活它但是它不起作用,它如果我使用setCompleter(None)
,似乎删除了完成者。
是否有可能实现这一目标?
感谢。