iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Qt实现模糊匹配功能的实例详解
  • 244
分享到

Qt实现模糊匹配功能的实例详解

Qt模糊匹配功能Qt模糊匹配 2022-11-13 18:11:54 244人浏览 安东尼
摘要

目录1.准备基础数据2.创建并实例化匹配类3.控件绑定对于浏览器的使用,我想大家一定不会陌生吧,输入要搜索的内容时,会出现相应的匹配信息。 那么,今天我要讲述的也是这样一个功能。 首

对于浏览器的使用,我想大家一定不会陌生吧,输入要搜索的内容时,会出现相应的匹配信息。

那么,今天我要讲述的也是这样一个功能。

首先看一下展示效果

输入任意文本后,弹出具有该文本的符合项,也就是模糊查询。

实现功能的核心是:QCompleter

该类可以在任何Qt小部件中提供自动完成搜索功能,例如:QLineEdit、QComboBox。当输入指定字符后,QCompleter会根据单词列表提供的内容进行筛查。

在这里,我是采用QLineEdit + QCompleter组合使用的。

下面我来介绍下如何使用的吧~

1.准备基础数据

想要让QCompleter完成模糊匹配功能,前提必须要有一个可供查询的库文件,否则是无法搜索的。

这里就简单插入一些字符串吧~

QStringList listData;
listData << QStringLiteral("基础数据1");
listData << QStringLiteral("基础数据n");

2.创建并实例化匹配类

QCompleter *m_pCompleter = new QCompleter(listData);

设置匹配方式,在Completer中存在以下几种匹配模式,分别列举,如下:

模式描述
Qt::MatchExactly只匹配第一个字/词
Qt::MatchFixedString只匹配第一个词,并且区分大小写
Qt::MatchContains只要字符串中包含字/词就能匹配
Qt::MatchStartsWith与第一个字/词进行匹配
Qt::MatchEndsWith 
Qt::MatchCaseSensitive搜索区分大小写
Qt::MatchRegExp使用正则表达式作为搜索项执行基于字符串的匹配(Qt5.15)
Qt::MatchRegularExpression使用正则表达式作为搜索项执行基于字符串的匹配(Qt5.15)
Qt::MatchWildcard使用带有通配符的字符串作为搜索条件,执行基于字符串的匹配
Qt::MatchWrap执行一个环绕的搜索,这样当搜索到达模型中的最后一项时,就会从第一个项开始,直到检查完所有项为止
Qt::MatchRecursive搜索整个层次结构

在使用过程中,一般采用:Qt::MatchContains的定义比较多。

代码设置,如下:

m_pCompleter->setFilterMode(Qt::MatchContains);

3.控件绑定

ui.edit->setCompleter(m_pCompleter);

到此,一个简单的模糊搜索就实现了,其实在使用过程中为了美观起见,还可以对QCompleter中展示的文本进行美化~

例如:

滚动条风格

QString g_scrollVerticalWidth8Gray = 
"QScrollBar:vertical{ width:8px; background-color:#e9f1f7;}"
"QScrollBar::handle:vertical{ width:8px; background-color:#6eade0; border-radius:4px;}"
"QScrollBar::handle:vertical:hover{background-color:#2b76af;}"
"QScrollBar::handle:vertical:pressed{background-color:#1e659b;}";

Completer风格

QString qsCompleterStyle =
//设置:背景色、字体颜色、大小、字体风格
"QAbstractItemView{background-color:#FFFFFF;color: #FFB6C1;font-size:16px;font-family:Microsoft YaHei UI;outline:0px;}"
"QAbstractItemView::item:hover{background-color:#7FFF00;color: #0000FF;}"
"QAbstractItemView::item:selected{background-color:#FF8C00;color: #0000FF;}";

风格设置,如下:

m_pCompleter->popup()->setStyleSheet(qsCompleterStyle + g_scrollVerticalWidth8Gray);

单纯的设置风格肯定是不行的,想要让风格有效,必须设置:QStyledItemDelegate

QStyledItemDelegate *d = new QStyledItemDelegate;
m_completerName->popup()->setItemDelegate(d);

最终展示效果,如下:

到此这篇关于Qt实现模糊匹配功能的实例详解的文章就介绍到这了,更多相关Qt模糊匹配功能内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Qt实现模糊匹配功能的实例详解

本文链接: https://www.lsjlt.com/news/169513.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Qt实现模糊匹配功能的实例详解
    目录1.准备基础数据2.创建并实例化匹配类3.控件绑定对于浏览器的使用,我想大家一定不会陌生吧,输入要搜索的内容时,会出现相应的匹配信息。 那么,今天我要讲述的也是这样一个功能。 首...
    99+
    2022-11-13
    Qt模糊匹配功能 Qt模糊匹配
  • Python+FuzzyWuzzy实现模糊匹配的示例详解
    目录1. 前言2. FuzzyWuzzy库介绍2.1 fuzz模块2.2 process模块3. 实战应用3.1 公司名称字段模糊匹配3.2 省份字段模糊匹配4. 全部函数代码在日常...
    99+
    2024-04-02
  • js如何实现模糊匹配功能
    这篇文章主要介绍了js如何实现模糊匹配功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。功能描述:在搜索框中输入某一个字段,可以查询到相关的...
    99+
    2024-04-02
  • python实现模糊匹配
    题目:模糊匹配, ‘’代表一个字符, *代表任意多个字符。给一段明确字符比如avdjnd 以及模糊字符比如*djdjiejj,判断二者是否匹配。若能匹配输出”Yes”, 否则输出“No” (为了方便阅读,代码里面输出Ture or...
    99+
    2023-01-31
    模糊 python
  • Python+FuzzyWuzzy怎么实现模糊匹配
    今天小编给大家分享一下Python+FuzzyWuzzy怎么实现模糊匹配的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. ...
    99+
    2023-06-30
  • Python+Opencv实现图像匹配功能(模板匹配)
    本文实例为大家分享了Python+Opencv实现图像匹配功能的具体代码,供大家参考,具体内容如下 1、原理 简单来说,模板匹配就是拿一个模板(图片)在目标图片上依次滑动,每次计算模...
    99+
    2024-04-02
  • python 字符串模糊匹配Fuzzywuzzy的实现
    目录(1)安装(2)接口说明(3)使用Python提供fuzzywuzzy模块,不仅可用于计算两个字符串之间的相似度,而且还提供排序接口能从大量候选集中找到最相似的句子。 (1)安装...
    99+
    2024-04-02
  • Python批量模糊匹配的3种方法实例
    目录前言使用编辑距离算法进行模糊匹配使用fuzzywuzzy进行批量模糊匹配fuzz模块process模块整体代码使用Gensim进行批量模糊匹配Gensim简介使用词袋模型直接进行...
    99+
    2024-04-02
  • Python实现字符串模糊匹配方式
    目录Python字符串模糊匹配包含四个参数python-re模块,模糊匹配Python字符串模糊匹配 Python的difflib库中get_close_matches方法 包含四个...
    99+
    2024-04-02
  • mysql模糊匹配多个值的两种方法实例
    目录要求:实现mysql中对同个字段进行多个匹配值的模糊查询方法一:将like作为连接条件方法二:正则表达式搭配group_concat函数总结要求:实现mysql中对同个字段进行多个匹配值的模糊查询 先看数据表: ...
    99+
    2022-12-15
    MySQL模糊匹配 sql 模糊匹配 mysql模糊查询like
  • Python3如何实现列表模糊匹配列表
    目录Python3列表模糊匹配列表B列表模糊匹配A列表Python 模糊匹配搜索问题fuzzywuzzydifflibPython3列表模糊匹配列表 B列表模糊匹配A列表 a = [...
    99+
    2024-04-02
  • react+antdselect下拉框实现模糊搜索匹配的示例代码
    我们在开发过程中,经常会出现下拉框数据很多得情况,这个时候客户一个个得找就很浪费时间,那该怎么办呢? 我们可以实现一边输入一遍模糊匹配。 实现后的效果是 具体代码实现请看下面: ...
    99+
    2023-01-31
    react antd select模糊搜索 react antd select下拉框
  • PythonOpenCV实现图像模板匹配详解
    目录1.什么是模板匹配及模板匹配方法matchTemplate()介绍素材准备2.单模板匹配2.1 单目标匹配2.2 多目标匹配3.多模板匹配1.什么是模板匹配及模板匹配方法matc...
    99+
    2024-04-02
  • Python Pandas两个表格内容模糊匹配的实现
    目录一、方法21. 导入库2. 构建关键词3. 构建句子4. 建立统一索引5. 表连接6. 关键词匹配二、方法21. 构建字典2. 关键词匹配3. 结果展示4. 匹配结果展开总结一、...
    99+
    2024-04-02
  • Sphinx 实现 PHP 项目的模糊匹配搜索效果
    首先,我们需要在 PHP 项目中安装 Sphinx。可以使用 Composer 包管理工具来安装 Sphinx 的 PHP 包。在项目根目录下的 composer.json 文件中,添加 Sphinx 包的依赖:{ "requ...
    99+
    2023-10-21
    Sphinx PHP 项目 模糊匹配搜索
  • Python+Opencv实现图像模板匹配详解
    目录引言一、匹配方法 二、匹配单个对象 三、匹配多个对象引言 什么是模板匹配呢? 看到这里大家是否会觉得很熟悉的感觉涌上心头!在人脸识别是不是也会看见&...
    99+
    2024-04-02
  • 前端JavaScript实现本地模糊搜索功能的方法实例
    目录一、项目前景二、涉及知识点Object.assign()的用法filter()方法indexOf()模糊查询DEMO完整代码如下:总结一、项目前景 随着vue、react在实际...
    99+
    2024-04-02
  • Mybatis CURD及模糊查询功能的实现
    命名空间namespace: 配置文件中namespace中的名称为对应Mapper接口或者Dao接口的完整包名,必须一致! 1.查询(select) select: 接...
    99+
    2024-04-02
  • PHP如何实现模糊搜索功能
    在PHP中实现模糊搜索功能是一项常见的需求,特别是在开发网站或应用程序中涉及到搜索功能时。模糊搜索可以帮助用户更快速准确地找到他们需要的信息。下面将介绍如何在PHP中实现模糊搜索功能,...
    99+
    2024-03-06
    php 实现 模糊搜索 sql语句
  • mongose 模糊检索实现方法示例详解
    目录条件查找RegExp 对象条件查找 $regex为模糊查询的字符串提供正则表达式功能,MongoDB使用perl兼容正则表达式 //通过条件查找,支持username模糊搜索并分页 findAdminByPa...
    99+
    2023-08-19
    mongose 模糊检索 mongose 模糊查询
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作