QlineEdit类本身是没有自动补全功能的,可以使用QCompleter配合实现功能。
但是在开发过程中发现,输入的字符串如果匹配那么QCompleter类会弹窗显示匹配项,如果输入的字符串不匹配则QCompleter类会关闭弹出(这点我也倒是能理解,没有弹窗就表示没有匹配项)。效果如下
然而界面设计师认为应该在没有匹配项时,弹窗显示内容提示用户,增强与用户的交互。效果如下
原本考虑继承QLineEidt类并增加自动补全类,后面发现其实在QLineEdit + QCompleter的基础上再修改一下就可以达到上面的效果
代码链接,有不足的地方请大佬指正 : AutoComplete 源码