QT QComBox实现模糊查询

news2024/11/24 21:05:48

一、概述

在Qt中,可以通过QComboBox和QLineEdit实现模糊查询的功能。模糊查询是指根据用户输入的文本,在下拉框的选项中进行模糊匹配,并动态地显示匹配的选项。

二、基础知识

1、QCompleter

(1)QCompleter 是 Qt 框架中提供的一个用于自动补全和模糊搜索的类。QCompleter 可以与输入框(如 QLineEdit)一起使用,为用户输入的文本提供自动补全的功能。

(2)QCompleter 的主要作用是为一个模型(例如 QStringListModel 或 QStandardItemModel)提供自动补全的功能。它可以根据用户在输入框中输入的文本,动态地过滤模型中的项,并将过滤结果作为候选项显示在输入框下方的弹出窗口中。

2、QStyledItemDelegate

(1)QStyledItemDelegate 是 Qt 框架中提供的一个用于自定义绘制和编辑每个项的委托类。它可以与诸如 QListView、QTableView、QTreeView 等控件一起使用,用于自定义项的外观和编辑行为。

(2)QStyledItemDelegate 的主要作用是控制视图中每个项的绘制和编辑方式,以实现自定义的外观和交互效果。

三、UI界面搭建

四、具体实现

1、MainWindow.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QEvent>
#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

    //模糊搜索
    void obscureSearch();

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

 2、MainWindow.cpp文件

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include <QCompleter>
#include <QListView>
#include <QStyledItemDelegate>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    obscureSearch();
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::obscureSearch()
{
    QStringList list;
    list << "RCV_01" << "RCV_02" << "RCV_03" << "RCV_04";
    ui->comboBox->addItems(list);

    QString style = QString("QListView {"
                            "font-family: \"Arial\";"
                            "font-size: 13px; "
                            "outline: 0px;}"
                            "QListView::item {"
                            "padding: 3px 0x 3px 5px;"
                            "border-width: 0px;}"
                            "QListView::item:selected {"
                            "background-color: #004EA2;}"
                            "QListView::item:hover {"
                            "background-color: #E5F1FB}");

    ui->comboBox->setView(new QListView());
    ui->comboBox->setEditable(true);
    ui->comboBox->setLineEdit(ui->lineEdit);
    ui->comboBox->setMaxVisibleItems(5);
    ui->comboBox->view()->setStyleSheet(style);

    QCompleter *pCompleter = new QCompleter(list, this);
    QStyledItemDelegate *d = new QStyledItemDelegate;
    pCompleter->popup()->setItemDelegate(d);
    pCompleter->popup()->setStyleSheet(style);
    pCompleter->setCaseSensitivity(Qt::CaseInsensitive);

    ui->comboBox->setCompleter(pCompleter);
    ui->lineEdit->setCompleter(pCompleter);

    ui->lineEdit->clear();
}

 五、实现效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1260662.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

12 网关实战:Spring Cloud Gateway基础理论

为什么需要网关? 传统的单体架构中只有一个服务开放给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,那么作为客户端如何去调用这些微服务呢?如果没有网关的存在,只能在本地记录每个微服务的调用地址。 无网关的微服务架构往往存在以下问题: 客户端多次请求…

ElasticSearch学习笔记(一)

计算机软件的学习&#xff0c;最重要的是举一反三&#xff0c;只要大胆尝试&#xff0c;认真验证自己的想法就能收到事办功倍的效果。在开始之前可以看看别人的教程做个快速的入门&#xff0c;然后去官方网站看看官方的教程&#xff0c;有中文教程固然是好&#xff0c;没有中文…

从容应对高并发:RabbitMQ与消息限流策略的完美结合

在当今互联网时代&#xff0c;高并发访问已成为许多应用系统面临的常见挑战之一。对于需要处理大量请求的系统来说&#xff0c;如何保证系统的稳定性和可靠性是一个关键问题。RabbitMQ作为一种可靠的消息队列中间件&#xff0c;可以帮助解决高并发环境下的消息处理问题。而结合…

“智”护城市生命线,宏电亮相第十届中国(上海)国际管网展

11月22-24日&#xff0c;第十届中国&#xff08;上海&#xff09;国际管网展览会在国家会展中心盛大举办&#xff0c;展会旨在配合推进国家基础建设工作&#xff0c;推动管网改造建设&#xff0c;汇聚了三百余家优秀企业参展&#xff0c;展示产品及技术覆盖管网建设、智慧水务、…

LeetCode-面试题08.01 三步问题 C/C++实现 超详细思路及过程[E]

&#x1f388;归属专栏&#xff1a;深夜咖啡配算法 &#x1f697;个人主页&#xff1a;Jammingpro &#x1f41f;记录一句&#xff1a;摆了一个周末了&#xff0c;不能摆了&#xff0c;努力起来&#xff01;&#xff01; 文章目录 LeetCode-面试题08.01 三步问题&#x1f697;题…

Hiera实战:使用Hiera实现图像分类任务(一)

文章目录 摘要安装包安装timm 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集_pickle.PicklingError: Cant pickle <function Head.<lambda> at 0x000001DE8DD7F240>: attribute lookup Head.<lambda> on hiera.hiera failed 摘要 现代层次视觉变…

基于DSP/SOC音乐灯效系统设计方法

音乐灯效系统设计方法 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, 三种方法: (1)MIC 采集音乐信号变化,(2)直接获取SPK 模拟音频…

OBS Studio 30.0 正式发布:支持 WebRTC

导读OBS Studio 30.0 已正式发布。此版本移除了对 Ubuntu 20.04、Qt 5 和 FFmpeg 4.4 之前版本的支持。 OBS Studio 30.0 已正式发布。此版本移除了对 Ubuntu 20.04、Qt 5 和 FFmpeg 4.4 之前版本的支持。 主要变化包括&#xff1a; 支持 WebRTC&#xff08;详情查看 OBS Stu…

s_v_web_id或fp协议过签名,dy滑块

某音s_web_id或fp协议过签名 ‘h5_sdk_version’, ‘2.36.0’ "search_impr":{"entity_id":"1135137973613200"},"link_item_list":null,"user_permissions":null,"offline_info_list":null,"is_cf":…

51单片机项目(15)——基于51单片机的万年历仿真

1.功能设计 本次设计的系统&#xff0c;可以显示年月日&#xff0c;时分秒。使用DS1302芯片。 还自带闹钟功能. &#xff08;要源工程的&#xff0c;移步至最后&#xff01; &#xff08;代码和仿真文件都有&#xff09;&#xff09; 2.仿真图 3.背景意义 51单片机&#x…

微信api开发接口文档

简要描述&#xff1a; 搜索联系人 请求URL&#xff1a; http://域名地址/searchUser 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明wI…

人力资源管理后台 === 主页模块

目录 1.获取用户资料在Vuex中共享 2.显示用户头像和用户名 3.处理头像为空的场景 4.处理token失效的问题 5.调整下拉菜单&#xff0c;实现退出登录 6.修改密码功能实现 6.1-修改密码-弹出层 6.2-修改密码-表单结构 6.3-修改密码-表单校验 6.4-修改密码-确定和取消 7.…

学习知识回顾随笔

文章目录 如何远程连接MySQL数据库1.创建用户来运行&#xff0c;此用户从任何主机连接到mysql数据库2.使用IP地址来访问MySQL数据库 如何远程访问Django项目Web应用什么是Web应用应用程序的两种模式Web应用程序的优缺点 HTTP协议&#xff08;超文本传输协议&#xff09;简介HTT…

京东平台双11全品类完整销售数据回顾(京东大数据-京东数据采集-京东数据接口)

今年的双十一&#xff0c;大家依然没有等到各大平台的官方战报。 所以&#xff0c;对于绝大部分品牌、商家、咨询公司乃至有数据研究需求的小伙伴来说&#xff0c;很难了解到今年大促消费者的真实消费水平。 为此&#xff0c;鲸参谋简单整理出了10个京东大类目&#xff08;含5…

享受更健康的睡眠,dido P1S智能手环体验

如今很多人都有严重的失眠困扰&#xff0c;像是因为平时工作非常繁忙&#xff0c;每天回到家后已经很晚了&#xff0c;或者是睡前长时间刷手机&#xff0c;躺在床上辗转反侧&#xff0c;晚上就很难入睡&#xff0c;脑海中一片混乱&#xff0c;休息的质量就很差。我最近尝试了一…

功率信号源可输出波形有哪些

功率信号源是一种能够产生高功率输出信号的电子设备。它常用于实验室、工业生产以及各种应用领域中&#xff0c;如无线通信、音频放大和激光器驱动等。功率信号源可以输出多种不同的波形&#xff0c;下面将介绍一些常见的输出波形类型。 直流&#xff08;DC&#xff09;波形&am…

影响机器视觉测量精度的因素有哪些?

精度测量取决于分辨率 在机器视觉测量中提供高精度和低不确定度的决定性因素是获取的图像的分辨率。在这种情况下&#xff0c;术语分辨率 &#xff08;或图像分辨率&#xff09;意味着以实际单位的单个像素的大小。简而言之&#xff0c;如果一个摄像机传感器在水平方向上包含…

IP代理的潜力有多大?做跨境一定要会用!

IP说简单不简单&#xff0c;说复杂也不复杂&#xff0c;打个比方&#xff0c;IP就好比我们上网的一个门牌号&#xff0c;每家每户都会有一个门牌号&#xff0c;而且是唯一的地址。而代理IP&#xff08;代理服务器&#xff09;是一个位于中间的服务器&#xff0c;充当客户端和目…

iptables拒绝所有端口放开特定端口方法流程,iptables允许ping和拒绝ping、hosts阻止所有ip指定放开ip方法流程

文章目录 说明iptables拒绝所有端口放开特定端口方法流程拒绝所有端口允许特定端口临时规则写入配置文件永久生效 iptables允许ping和拒绝ping禁止允许ping说明内核参数设置禁止允许 防火墙设置禁止允许 禁止ping允许ping外部ping通虚拟机内部虚拟机内部使用ping规则详细 hosts…

全国重点文物保护单位数据第1-8批数据,附数据可视化

今天分享的第二个数据是全国重点文物保护单位数据&#xff0c;涉及全国重点文物保护单位第一批至第八批&#xff0c;数据格式为shpcsv格式&#xff0c;以点为几何类型&#xff0c;已经经过精加工&#xff0c;可直接使用。 涉及字段列表如下&#xff1a; 序号字段名称字段说明…