【问题标题】:pyqt - activate QCompleter after a certain number of letters in QLineEditpyqt - 在 QLineEdit 中达到一定数量的字母后激活 QCompleter
【发布时间】: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)

有没有可能做到这一点?

谢谢。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 那篇博文根本没有回答 OP 的问题。你真的尝试过代码吗?
    • @Achayan,我没有在这个博客中找到我想要的东西。
    猜你喜欢
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多