pyqt5的QCompleter自动补全 使用模板
相关说明
使用QCompleter类,就可以实现自动补全功能,效果图如下:


对应的代码很简单
def init_lineedit(self):
# 增加自动补全
self.completer = QCompleter(items_list)
self.lineedit.setCompleter(self.completer) def init_combobox(self):
# 增加选项元素
for i in range(len(items_list)):
self.combobox.addItem(items_list[i])
self.combobox.setCurrentIndex(-1) # 增加自动补全
self.completer = QCompleter(items_list)
self.combobox.setCompleter(self.completer)
【如下代码,完全复制,直接运行,即可使用】
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
################################################ items_list=["C","C++","Java","Python","JavaScript","C#","Swift","go","Ruby","Lua","PHP"] ################################################
class Widget(QWidget):
def __init__(self, *args, **kwargs):
super(Widget, self).__init__(*args, **kwargs)
layout = QHBoxLayout(self)
self.lineedit = QLineEdit(self, minimumWidth=200)
self.combobox = QComboBox(self, minimumWidth=200)
self.combobox.setEditable(True) layout.addWidget(QLabel("QLineEdit", self))
layout.addWidget(self.lineedit)
layout.addItem(QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)) layout.addWidget(QLabel("QComboBox", self))
layout.addWidget(self.combobox) #初始化combobox
self.init_lineedit()
self.init_combobox() #增加选中事件
self.combobox.activated.connect(self.on_combobox_Activate) def init_lineedit(self):
# 增加自动补全
self.completer = QCompleter(items_list)
self.lineedit.setCompleter(self.completer) def init_combobox(self):
# 增加选项元素
for i in range(len(items_list)):
self.combobox.addItem(items_list[i])
self.combobox.setCurrentIndex(-1) # 增加自动补全
self.completer = QCompleter(items_list)
self.combobox.setCompleter(self.completer) def on_combobox_Activate(self, index):
print(self.combobox.count())
print(self.combobox.currentIndex())
print(self.combobox.currentText())
print(self.combobox.currentData())
print(self.combobox.itemData(self.combobox.currentIndex()))
print(self.combobox.itemText(self.combobox.currentIndex()))
print(self.combobox.itemText(index)) if __name__ == "__main__":
app = QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
pyqt5的QCompleter自动补全 使用模板的更多相关文章
- EditPlus自动补全、模板配置
EditPlus真的是一款非常好用的编辑器,虽然小,但是短小精悍,速度快.只要配置好了,功能也是很强大的.下面来总结一下如何配置EditPlus的自动补全,和模板配置. 一.配置自动补全:(以开发CS ...
- QCompleter自动补全
知识永远是那么多,想到什么就总结什么,今天记录一下关于我对QComplete的一些小见解. 官方文档中叙述如下: 可以在任何Qt的窗口小部件中使用QCompleter提供自动补全功能,如 ...
- 11、LineEdit与setCompleter自动补全
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug>//引入打印 ...
- Vim自动补全神器–YouCompleteMe
一.简介 YouCompleteMe是Vim的自动补全插件,与同类插件相比,具有如下优势 1.基于语义补全 2.整合实现了多种插件 clang_complete.AutoComplPop .Super ...
- Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
导读 行文本输入框在用于界面的文本输入,在WEB登录表单中应用广泛.一般行文本编辑框可定制性较高,既可以当作密码输入框,又可以作为文本过滤器.QLineEdit本身使用方法也很简单,无需过多的设置就能 ...
- QT笔记之QLineEdit自动补全以及控件提升
转载:http://www.cnblogs.com/csuftzzk/p/qss_lineedit_completer.html?utm_source=tuicool&utm_medium=r ...
- Eclipse自动补全功能和自动生成作者、日期注释等功能设置
修改作者.日期注释格式:打开Windows->Preferences->Java->Code Style->Code Templates,点击右边窗口中的Comments,可以 ...
- Vim自动补全神器:YouCompleteMe
第一次听说这个插件还是在偶然的情况下看到别人的博客,听说了这个插件的大名.本来打算在实训期间来完成安装的,无奈网实在不给力,也就拖到了回家的时候.在开始准备工作的时候就了解到这个插件不是很容易安装,安 ...
- Vim自动补全神器:YouCompleteMe(转)
转自:http://blog.jobbole.com/58978/ 可能会有一段时间写linxu,免不了用vim,留着,找时间实操之 原文出处: marchtea 的博客 第一次听说这个插件还是在偶然 ...
随机推荐
- altium designer 鼠线
第一: 按“L”进入View Configurations 要确保Default Color for New Nets是勾上的. 第二: 如果“PCB”的下拉列表处于“From-To Editor”状 ...
- Python学习 第一天(一)初始python
1.python的前世今生 想要充分的了解一个人,无外乎首先充分了解他的过去和现在:咱们学习语言也是一样的套路 1.1 python的历史 Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈp ...
- ajax 向php发送请求
<html> <head> <script src="clienthint.js"></script> </head> ...
- Django :执行 python manage.py makemigrations 时报错 TypeError: __init__() missing 1 required positional argument: 'on_delete'
原因 执行命令 python manage.py makemigrations 报错 TypeError: __init__() missing 1 required positional argum ...
- cmd_memo
1. bind host or ip:port #指定域名 curl -H 'Host:www.tsuiz.com' http://10.14.54.131:8080/check.do #指定ip和端 ...
- python---硬件序列号
安装wmi : pip install wmi -i https://pypi.douban.com/simple 还要安装 pip install pywin32 import wmi c = w ...
- Springboot项目报错【java.base/jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to java.base/java.net.URLClassLoader】
1.发生问题: 升级了JDK9,发现原先的springboot项目起不来了,以为是maven中jdk配置有问题. 于是在pom中添加了 <plugin> <groupId>or ...
- phpstorm快捷键和激活
点击PHP中文网->PHPstorm激活, 按照步骤激活 今天遇到了不能激活的情况, your activation code could not be validated.这个解决方法是把上面 ...
- nginx配置跨域问题
1.跨域指的是浏览器不能执行其它网站的脚本,它是由浏览器的同源策略造成的,是浏览器对JavaScript 施加的安全限制. 2.浏览器在执行脚本的时候,都会检查这个脚本属于哪个页面,即检查是否同源,只 ...
- Linux下SHA256校验
一.将Hash: SHA256文件和需要检验的文件放在同一个文件夹内 二.$sha256sum -c SHA265 文件 输出: 校验文件:ok