2016-11-13 18 views
0

我想要一個QCompleter,它只能在QLineEdit中的一定數量的字母后開始預測。我從QLineEdit和QCompleter編寫了簡單的類,但我不知道如何添加此功能。pyqt - 在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) 

我試圖覆蓋從QLineEdittextChangedsetCompleter(None)如果文本的長度小於3,如果超過3個,但它不工作,似乎如果我使用完成者將被刪除再次激活它setCompleter(None)

有沒有可能做到這一點?

感謝。

回答

0

有很好的解釋blog,但是你需要重新實現QlineEdit和QCompleter來獲得你想要的東西。如果您無法從該博客文章中找到您想要的內容,請告訴我們。

+0

該博客帖子根本沒有回答OP的問題。你真的嘗試過這些代碼嗎? – ekhumoro

+0

@Achayan,我沒有找到我在這個博客中尋找的東西。 – SyedElec