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,我尝试将 textChangedQLineEdit 覆盖到 setCompleter(None) 并在超过 3 时再次激活它但它不起作用,似乎完成者被删除如果我用setCompleter(None)

有没有可能做到这一点?

谢谢。

【问题讨论】:

【参考方案1】:

blog 解释得很好,但是你需要重新实现 QlineEdit 和 QCompleter 才能得到你想要的东西。如果您无法从该博客文章中找到您要查找的内容,请告诉我们。

【讨论】:

那篇博文根本没有回答 OP 的问题。你真的尝试过代码吗? @Achayan,我没有在这个博客中找到我想要的东西。

以上是关于pyqt - 在 QLineEdit 中达到一定数量的字母后激活 QCompleter的主要内容,如果未能解决你的问题,请参考以下文章

PYQT5 qlineedit 隐藏后不显示

QLineEdit 对象的 PyQt 集合

PyQt4 - QLineEdit() 和 QCheckbox()

PyQt4:结合 textChanged 和 editingFinished 为 QLineEdit

如何在两个 QLineEdit 之间添加水平线,如下面的 pyqt?

是否可以在 PyQt/PySide2 中为 QLineEdit 的文本制作“破碎”边框