pyqt - 在 QLineEdit 中达到一定数量的字母后激活 QCompleter
Posted
技术标签:
【中文标题】pyqt - 在 QLineEdit 中达到一定数量的字母后激活 QCompleter【英文标题】:pyqt - activate QCompleter after a certain number of letters in QLineEdit 【发布时间】: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)
。
有没有可能做到这一点?
谢谢。
【问题讨论】:
【参考方案1】:blog 解释得很好,但是你需要重新实现 QlineEdit 和 QCompleter 才能得到你想要的东西。如果您无法从该博客文章中找到您要查找的内容,请告诉我们。
【讨论】:
那篇博文根本没有回答 OP 的问题。你真的尝试过代码吗? @Achayan,我没有在这个博客中找到我想要的东西。以上是关于pyqt - 在 QLineEdit 中达到一定数量的字母后激活 QCompleter的主要内容,如果未能解决你的问题,请参考以下文章
PyQt4 - QLineEdit() 和 QCheckbox()
PyQt4:结合 textChanged 和 editingFinished 为 QLineEdit