当前位置:网站首页>Qt自动补全之QCompleter使用
Qt自动补全之QCompleter使用
2022-08-04 16:57:00 【欧特克_Glodon】
QCompleter能实现自动填充功能,方便用户输入,提升用户的体验,一般和QLineEdit与QComboBox搭配起来使用.QCompleter类提供了模型item的提示功能。
目的:搜索框常用来自动补全搜索内容。
效果:
代码如下:
#include "mainwindow.h"
#include "./ui_mainwindow.h"
#include<QCompleter>
#include<QFileSystemModel>
#include<QDirModel>
#pragma execution_character_set("utf-8")
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QStringList itemList;
itemList << "北京市" << "河北省" << "河南省" << "test" << "HCTest";
// 下拉框添加数据
ui->comboBox->addItems(itemList);
// 设置可编辑
ui->comboBox->setEditable(true);
// 自动补全实例的构建
QCompleter *comp = new QCompleter(itemList,ui->comboBox->model());
// 设置匹配模式,只要包含就显示
comp->setFilterMode(Qt::MatchContains);
// 设置大小写区分,不区大小写
comp->setCaseSensitivity(Qt::CaseInsensitive);
// 设置向用户提供补全的方式
comp->setCompletionMode(QCompleter::PopupCompletion);
// 装载补全实例
ui->comboBox->setCompleter(comp);
QStringList word_list;
word_list<<"XiaoTu"<<"xiaomi"<<"Huawei"<<"huafei"<<"Shanghai"<<"shangshan"<<"abc";
QCompleter *completer = new QCompleter(word_list, this);
// 设置匹配模式,只要包含就显示
completer->setFilterMode(Qt::MatchContains);
// 设置大小写区分,不区大小写
completer->setCaseSensitivity(Qt::CaseInsensitive);
// 设置向用户提供补全的方式
completer->setCompletionMode(QCompleter::PopupCompletion);
ui->lineEdit->setCompleter(completer);
QCompleter *completer2 = new QCompleter(this);
completer2->setModel(new QDirModel(completer2));
ui->syslineEdit->setCompleter(completer2);
}
MainWindow::~MainWindow()
{
delete ui;
}
边栏推荐
- Hubei Telecom Tianyi TY1608_S905L3B_MT7668_ card brush firmware package
- 华为应用市场“图章链接”功能上线 让APP分发突破机型壁垒
- 跨域传递数据(iframe)
- SAP 电商云 Spartacus UI SSR 单元测试里的 callFake
- AtCoder Beginner Contest 262 部分题解
- WEB 渗透之XXE&XML
- 多线程学习笔记-3.并发容器
- Minecraft 服务器安装Forge 并添加Mod
- 谷歌开发者社区推荐:《Jetpack Compose 从入门到实战》新书上架,带你踏上 Compose 开发之旅~
- 机器人示教编程与离线编程的优缺点对比
猜你喜欢
随机推荐
18 Data Collection Analysis
WEB 渗透之XXE&XML
并发编程原理学习-reentrantlock源码分析
拼多多详情API接口深度解读
【IDEA】idea配置
MySQL学习笔记-4.数据更新时的性能问题
手把手教你搭建一个Minecraft 服务器
刷爆朋友圈!Alibaba出品亿级并发设计速成笔记太香了!
Cesium快速上手0-Cesium安装与基本介绍
跨域传递数据(iframe)
机器学习(十四):K均值聚类(kmeans)
Go语言gin框架返回json格式里,怎么把某个int属性转成string返回?
【LeetCode每日一题】——374.猜数字大小
SAP ABAP SteammPunk 蒸汽朋克的最新进展 - 嵌入式蒸汽朋克
域名哪家便宜?怎么买便宜域名?
容器化 | 在 NFS 备份恢复 RadonDB MySQL 集群数据
JSP的Web监听器(Listener)
闭包及闭包的使用
数据库内核面试中我不会的问题(2)
【商家联盟】云平台—异业联盟,打造线上线下商业相结合的系统