当前位置: 首页 > news >正文

qt QCompleter详解

1、概述

QCompleter是Qt框架中的一个类,用于为文本输入提供自动完成功能。它可以与Qt的输入控件(如QLineEdit、QTextEdit等)结合使用,根据用户的输入实时过滤数据源,并在输入控件下方或内部显示补全建议列表。用户可以通过键盘或鼠标选择其中一个建议项,或者继续输入以缩小补全范围。QCompleter能够减少用户输入的工作量,防止输入错误,并提供更好的用户体验。

2、重要方法
  • QCompleter(QObject *parent = nullptr) 或 QCompleter(const QStringList &wordList, QObject *parent = nullptr) 等,用于创建QCompleter对象。
  • void setModel(QAbstractItemModel *model),用于设置数据源模型。可以使用QStringListModel、QSqlQueryModel等Qt提供的模型类,也可以自定义一个继承自QAbstractItemModel的模型类。
  • void setCompletionMode(QCompleter::CompletionMode mode),用于设置补全模式。可以是QCompleter::PopupCompletion(在输入控件下方显示补全建议列表)或QCompleter::InlineCompletion(在输入控件内部显示补全建议)。
  • void setCompletionRole(int role),用于设置补全策略,即根据哪个角色的数据进行补全匹配。可以使用Qt::DisplayRole、Qt::EditRole等预定义的角色,也可以自定义角色。
  • void setFilterMode(Qt::MatchFlags mode),用于设置过滤模式。可以是Qt::MatchStartsWith(以输入开头进行匹配)或Qt::MatchContains(包含输入进行匹配)。
  • QWidget *popup() const,用于获取补全提示窗口的QListView对象,并对其进行自定义设置,如设置显示行数、行高、样式等。
  • void setModelSorting(QCompleter::ModelSorting sorting):设置模型排序方式。
  • void setCaseSensitivity(Qt::Casesensitivity caseSensitivity):设置大小写敏感性。
  • void setCompletionPrefix(const QString &prefix):设置补全前缀。
  • void setMaxVisibleltems(int maxItems):设置最大可见补全项数量。
  • void setwidget(QWidget *widget):设置需要自动补全的部件(如QLineEdit)。
  • void complete():显示补全项下拉列表。

3、重要信号
  • void activated(const Qstring &text):当用户选择一个补全项时发出信号。
  • void highlighted(const Qstring &text):当用户高亮一个补全项时发出信号。

4、匹配模式

QCompleter::CompletionMode枚举定义了自动补全的模式:

  • PopupCompletion:在输入框下显示补全项的下拉列表。
  • InlineCompletion:直接在输入框中显示补全项。
  • UnfilteredPopupCompletion:显示完整的补全项下拉列表,而不进行过滤。
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{setWindowTitle("QCompleter Example");resize(400, 200);// 创建候选项列表QStringList wordList = {"apple", "banana", "cherry", "date", "elderberry", "fig", "grape"};// 创建自动补全器QCompleter *completer = new QCompleter(wordList, this);completer->setCaseSensitivity(Qt::CaseInsensitive); // 不区分大小写completer->setCompletionMode(QCompleter::PopupCompletion); // 下拉列表补全模式// 创建输入框QLineEdit *lineEdit = new QLineEdit(this);lineEdit->setPlaceholderText("Type a fruit...");lineEdit->setCompleter(completer);// 布局管理QVBoxLayout *layout = new QVBoxLayout;layout->addWidget(lineEdit);QWidget *centralWidget = new QWidget;centralWidget->setLayout(layout);setCentralWidget(centralWidget);// 连接信号和槽connect(completer, QOverload<const QString &>::of(&QCompleter::activated), this, [&](const QString &text){qDebug() << "Completion activated:" << text;});}

觉得有帮助的话,打赏一下呗。。

           

相关文章:

qt QCompleter详解

1、概述 QCompleter是Qt框架中的一个类&#xff0c;用于为文本输入提供自动完成功能。它可以与Qt的输入控件&#xff08;如QLineEdit、QTextEdit等&#xff09;结合使用&#xff0c;根据用户的输入实时过滤数据源&#xff0c;并在输入控件下方或内部显示补全建议列表。用户可以…...

YOLOv11融合特征细化前馈网络 FRFN[CVPR2024]及相关改进思路

YOLOv11v10v8使用教程&#xff1a; YOLOv11入门到入土使用教程 一、 模块介绍 论文链接&#xff1a;Adapt or Rerish 代码链接&#xff1a;https://github.com/joshyZhou/AST 论文速览&#xff1a;基于 transformer 的方法在图像恢复任务中取得了有希望的性能&#xff0c;因为…...

【前端知识】JS模块规范

JS模块规范 概述CommonJS 规范 代码示例AMD 规范 代码示例ES6 Module 规范 代码示例IIFE 规范 代码示例全局变量 代码示例 CommonJS 模块和 ES6 模块有什么区别&#xff1f;1. 语法和声明方式2. 动态和静态导入3. 循环依赖4. 默认导出和命名导出5. 文件扩展名6. 环境和应用7. 工…...

vue3展示pag格式动态图

提示&#xff1a;如果是webpack环境的&#xff0c;参考&#xff1a;Pag格式在vue3中的简单使用方法_pag文件-CSDN博客 下面展示的是在vite环境下配置pag 1、安装libpag npm i libpag --save 2、安装rollup-plugin-copy npm i rollup-plugin-copy --save 3、封装pag组件 下…...

代码随想录算法训练营第三十九天|Day39 动态规划

198.打家劫舍 视频讲解&#xff1a;https://www.bilibili.com/video/BV1Te411N7SX https://programmercarl.com/0198.%E6%89%93%E5%AE%B6%E5%8A%AB%E8%88%8D.html 思路 #define max(a, b) ((a) > (b) ? (a) : (b)) int rob(int* nums, int numsSize) {if(numsSize 0){ret…...

qt QMovie详解

1、概述 QMovie 是 Qt 框架中用于处理动画文件的类。它支持多种动画格式&#xff0c;包括 GIF 和一些常见的视频格式&#xff08;尽管对视频格式的支持依赖于底层平台&#xff09;。QMovie 类主要用于在 QLabel 或 QGraphicsView 等控件中显示动画。通过加载动画文件&#xff…...

数据集整理

系列博客目录 文章目录 系列博客目录1.Visual Genome数据集2.COCO数据集3.Flickr30k数据集10.集合多个数据集的网站 1.Visual Genome数据集 官网链接&#xff1a;https://homes.cs.washington.edu/~ranjay/visualgenome/index.html Visual Genome数据集梳理 Visual Genome数据…...

认证授权基础概念详解

目录 认证 (Authentication) 和授权 (Authorization)的区别是什么&#xff1f; RBAC 模型了解吗&#xff1f; 什么是 Cookie ? Cookie 的作用是什么? 如何在项目中使用 Cookie 呢&#xff1f; 如何在 Spring Boot 中创建和读取 Cookie 创建 Cookie Cookie 到期日期 安全…...

美国地址生成器站点

推荐一&#xff1a;fakexy 官网地址&#xff1a;https://www.fakexy.com 推荐二&#xff1a;好维持官网地址&#xff1a; https://www.dizhishengcheng.com 官网除了支持生成美国地址信息外&#xff0c;还支持生成英国、加拿大、日朩、澳大利亚、德国、法国、意大利、西班牙、巴…...

微信4.0大版本升级跨平台支持界面全面改版

微信4.0公测版现已正式发布&#xff0c;作为微信的大版本升级&#xff0c;新版微信基于全新架构开发&#xff0c;跨平台支持Windows和MAC系统&#xff0c;界面也全面改版&#xff0c;聊天宝也第一时间适配微信4.0&#xff0c;为广大客户提供快捷回复支持 前言 微信4.0公测版现…...

不想贴秋膘?正确打开秋冬运动姿势

这个秋天想要轻装上阵&#xff0c;想健康入秋更要美美入冬怎么破&#xff1f;这期把正确打开秋冬姿势一次性告诉你哦~ 天气变凉&#xff0c;脂肪可要燃起来~想要无痛入秋&#xff0c;最重要的动起来&#xff01;每天都抽出一点时间去运动一下&#xff0c;不光让身体燃起来&…...

【AIGC半月报】AIGC大模型启元:2024.11(上)

【AIGC半月报】AIGC大模型启元&#xff1a;2024.11&#xff08;上&#xff09; (1) Hunyuan-Large&#xff08;腾讯开源大模型&#xff09;(2) FLUX1.1 pro&#xff08;文生图&#xff09;(3) CogVideoX v1.5&#xff08;智谱AI升级文生视频大模型&#xff09; (1) Hunyuan-Lar…...

纯前端生成PDF(jsPDF)并下载保存或上传到OSS

前言 在工作中遇到了一个需求&#xff0c;就是把前端页面生成PDF并保存在本地&#xff0c;因为前端网站可能会展示各种表格&#xff0c;图表信息内容并带有比较鲜艳的色彩样式&#xff0c;如果让后端生产的PDF的话样式可能和前端页面展示的有所差异&#xff0c;所以这个任务就落…...

海外媒体发稿:旅游业媒体推广12个方面的注意事项-华媒舍

1.社交媒体推广过多 社交媒体是旅游业媒体推广的重要途径之一&#xff0c;过分依赖社交媒体将会成为一个常见误区。尽管社交媒体能够帮助旅行目的地提升知名度和曝光度&#xff0c;但如果过度投入精力与资源&#xff0c;可能忽视别的合理推广方式。 2.忽略SEO优化 搜索引擎提…...

分割回文串(DFS)

给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串。返回 s 所有可能的分割方案。 示例 1&#xff1a; 输入&#xff1a;s "aab" 输出&#xff1a;[["a","a","b"],["aa","b&qu…...

Qt第三课 ----------容器类控件

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…...

打印菱形(C语言)

程序&#xff1a; #include <stdio.h> int main() { int i,j; for(i1;i<5;i){ for(j0;j<6-i;j){ printf(" ");} for(j0;j<i*2-1;j){ printf("*");} printf("\n");} …...

Oracle 19c 中启用 scott 用户

Oracle 19c 中启用 scott 用户 文章目录 Oracle 19c 中启用 scott 用户正常操作如果ORA-01918: 用户 SCOTT 不存在?/sqlplus/admin/scott.sql 没有 scott.sql 怎么处理 正常操作 连接到 Oracle 数据库&#xff1a; 使用 sqlplus 工具或者其他 SQL 客户端工具&#xff08;如 S…...

git commit 校验

commitlint官方链接 1. npm install --save-dev commitlint/config-conventional commitlint/cli 2. 配置commitlint.config.cjs(项目根目录中&#xff09; module.exports {extends: [commitlint/config-conventional],rules: {type-enum: [2,always,[Feat, Fix, Doc, Style,…...

【AtCoder】Beginner Contest 377-B.Avoid Rook Attack

Problem Statement 题目链接 There is a grid of 64 64 64 squares with 8 8 8 rows and 8 8 8 columns. Let ( i , j ) (i,j) (i,j) denote the square at the i i i-th row from the top ( 1 ≤ i ≤ 8 ) (1\leq i\leq8) (1≤i≤8) and j j j-th column from the lef…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...