栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pyqt5的QCompleter自动补全 使用模板

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pyqt5的QCompleter自动补全 使用模板

相关说明

使用QCompleter类,就可以实现自动补全功能,效果图如下:


对应的代码很简单

    def init_lineedit(self):
 # 增加自动补全
 self.completer = QCompleter(items_list)
 # 设置匹配模式  有三种: Qt.MatchStartsWith 开头匹配(默认)  Qt.MatchContains 内容匹配  Qt.MatchEndsWith 结尾匹配
 self.completer.setFilterMode(Qt.MatchContains)
 # 设置补全模式  有三种: QCompleter.PopupCompletion(默认)  QCompleter.InlineCompletion   QCompleter.UnfilteredPopupCompletion
 self.completer.setCompletionMode(QCompleter.PopupCompletion) 
 # 给lineedit设置补全器
 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.completer.setFilterMode(Qt.MatchContains)
 self.completer.setCompletionMode(QCompleter.PopupCompletion)
 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)
 # 设置匹配模式  有三种: Qt.MatchStartsWith 开头匹配(默认)  Qt.MatchContains 内容匹配  Qt.MatchEndsWith 结尾匹配
 self.completer.setFilterMode(Qt.MatchContains)
 # 设置补全模式  有三种: QCompleter.PopupCompletion(默认)  QCompleter.InlineCompletion   QCompleter.UnfilteredPopupCompletion
 self.completer.setCompletionMode(QCompleter.PopupCompletion)
 # 给lineedit设置补全器
 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.completer.setFilterMode(Qt.MatchContains)
 self.completer.setCompletionMode(QCompleter.PopupCompletion)
 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_())

本文如有帮助,敬请留言鼓励。
本文如有错误,敬请留言改进。

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号