【发布时间】:2016-11-13 04:03:47
【问题描述】:
我想要一个 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)。
有没有可能做到这一点?
谢谢。
【问题讨论】:
标签: python qt python-3.x pyqt pyqt5