#LineEdit添加历史记录功能,按下回车添加至历史中
class LineEditWithHistory(QtWidgets.QLineEdit):
def __init__(self, parent ,inputList=[]):
super(LineEditWithHistory, self).__init__(parent) #用于存放历史记录的List
self.inputList = inputList
#LineEdit设置QCompleter,用于显示历史记录
self.completer = QtWidgets.QCompleter(self)
self.listModel = QtCore.QStringListModel(self.inputList, self)
self.completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
self.completer.setModel(self.listModel)
self.completer.activated.connect(self.Slot_completer_activated)
self.setCompleter(self.completer)
#输入完成按下回车后去重添加到历史记录中
self.returnPressed.connect(self.Slot_editingFinished) def Slot_editingFinished(self):
content = self.text()
if content != "":
if content not in self.inputList:
self.inputList.append(content)
self.listModel.setStringList(self.inputList)
self.completer.setCompletionMode(QtWidgets.QCompleter.PopupCompletion) #按下回车后恢复显示模式 https://doc.qt.io/qt-5/qcompleter.html#activated
def Slot_completer_activated(self,text):
self.completer.setCompletionMode(QtWidgets.QCompleter.PopupCompletion) def event(self, event):
#按下Tab键时弹出所有记录
if event.type() == QtCore.QEvent.KeyPress and event.key() == QtCore.Qt.Key_Tab:
#设置不过滤显示 https://doc.qt.io/qt-5/qcompleter.html#completionMode-prop
self.completer.setCompletionMode(QtWidgets.QCompleter.UnfilteredPopupCompletion)
self.completer.complete()
self.completer.popup().show()
return True
return super().event(event)

QLineEdit 按键Tab键时 显示历史记录的更多相关文章

  1. linux 基本配置tab键和显示行号 和中文输入法

    一.仅设置当前用户的Tab键宽度 输入命令:vim ~/.vimrc 然后:set tabstop=4   //我这里将Tab键的宽度设置为4 保存:ctrl+z+z(或:wq!) OK! 二.设置所 ...

  2. vim设置Tab键和显示行号

    vim ~/.vimrc set nu 这样设置方便写python代码.

  3. html---textarea初始化时就有个table空格以及tab键操作无效

    1 初始化时就有一个tab空格 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvRnJlZUFwZQ==/font/5a6L5L2T/fontsize/400 ...

  4. vim的tab键设定

    多在windows上编程的童鞋可能习惯于感受tab键为4个空格的长度,不过在linux系统中一般默认设定tab键为8个空格长度来显示.事实上tab也确实是8个空格的长度.不过由于习惯问题,某些童鞋还是 ...

  5. [No000018F]Vim自动缩进配置、原理和tab键替换空格-Vim使用技巧(4)

    一.Vim缩进介绍 在没有设置Vim自动缩进的条件下,可以手动使用Vim命令对特定行进行缩进处理.在Vim插入模式下,按下 Tab 键时默认会输入一个制表符,可通过Vim配置项将 Tab 替换为空格, ...

  6. source insight 中tab键的设置

    转:http://xinzero.com/source-insight-code-alignment-ended.html source insight代码对齐Tab键终极版 以前也写过一个sourc ...

  7. tabindex 带有指定 tab 键顺序 或焦点 focus

    登录注册时,文本框输入焦点 TAB 键时,自定义下一个焦点的顺序 <input type=" /> <input type=" /> 带有指定 tab 键顺 ...

  8. vim 下修改tab键为四个空格

    最近在运行python的时候,发现tab键在在运行过程中无法使用,报错:IndentationError: unindent does not match any outer indentation ...

  9. linux系统下Vi编辑器或者Vim编辑器设置显示行号、自动缩进、调整tab键宽度的技巧?

    工作中嫌vim 中一个tab键的宽度太大,linux系统默认,没改之前是一个tab键宽度是8个字符,想改成4个字符, 操作如下:(注意:这是在root用户下)cd ~vim .vimrc添加如下几行: ...

随机推荐

  1. VUE中常用的十大过滤器

    在vue的学习过程中,我发现过滤器是一个很好用的工具,过滤器(Filters)来渲染数据是一种很有趣的方式.过滤器不能替代Vue中的methods.computed或者watch,不改变真正的data ...

  2. ICEM-带四分之一球体的矩形块

    原视频下载地址:https://pan.baidu.com/s/1hsHq9mO 密码: 2iq3

  3. mysql 常用字符串操作

    SET @L=16, @i=3;SELECT *,CONCAT( LEFT(tag2,@i-1) ,'W', RIGHT(tag2,@L-@i)) from tb_main LIMIT 1,10;

  4. Linux Shell:根据指定的文件列表 或 map配置,进行文件位置转移

    读取配置文件,进行文件位置转移 在whenb.csv中指定了需要从/home/root/cf/下移除到/home/root/cf_wh/下文件列表,whenb.csv中包含记录如下: enb- enb ...

  5. NamedPipeStream的使用

    NamedPipeStream的使用具体案例如下: using System; using System.Data; using System.Data.SQLite; using System.IO ...

  6. 单点登录(SSO)工作原理

    单点登录(SSO)工作原理 一.单点登录的介绍 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次 ...

  7. boost中g++ 链接undefined reference to `boost::system::generic_category()问题

    编译错误如下: g++ -std=c++11  tcp_session.cpp tcp_server.cpp test.cpp -o test -pthread/tmp/ccv4rZkD.o: In ...

  8. Laya中地图拼接的缝隙问题

    拼图的空隙. Egret也有拼图的空隙.比如制作飞机游戏,背景拼接轮换着下移,有明显的缝隙.用TextureMerger可以解决. 看了下Laya.可以设置repeat. 编辑模式,图片上右键,设置默 ...

  9. Mysql查询的执行顺序

    顺序: FROM JOIN ON WHERE GROUP BY (从此处开始可以使用select中指定的别名) AVG.SUM.MAX HAVING SELECT DISTINCT ORDER BY ...

  10. SVN 本地文件锁/服务端文件锁清除步骤

    1.本地文件锁,直接cleanup,cleanup界面选择break locks即可 2.服务端文件锁,本地文件右击没有release lock或者break lock的选项时 方法1:右键,svn选 ...