QT的QStringList的使用

 

初始 化

默认构造函数创建一个空列表。可以使用初始值设定项列表构造函数创建包含元素的列表:

QStringList fonts = { "Arial", "Helvetica", "Times" };

添加字符串

可以使用insert 、append() 和 operator<< 函数将字符串添加到列表中。

() 可用于方便地将多个元素添加到列表中:

fonts << "Courier" << "Verdana";

遍历字符串

要遍历列表,可以使用索引位置迭代器类型:

索引:

for (int i = 0; i < fonts.size(); ++i)cout << fonts.at(i).toLocal8Bit().constData() << Qt::endl;

操作字符串

QStringList提供了几个函数,允许您操作列表的内容。您可以使用 join() 函数将字符串列表中的所有字符串连接成单个字符串(带有可选的分隔符)。例如:

QString str = fonts.join(", ");// str == "Arial, Helvetica, Times, Courier"

要连接的参数可以是单个字符或字符串。

要将字符串分解为字符串列表,请使用 split() 函数:

QStringList list;list = str.split(',');// list: ["Arial", "Helvetica", "Times", "Courier"]/span>

要拆分的参数可以是单个字符、字符串、a 或 a QRegularExpression or a (deprecated) QRegExp。

list还提供了filter函数,它允许您提取一个新列表,该列表仅包含那些包含特定子字符串(或匹配特定正则表达式)的字符串:

QStringList monospacedFonts = fonts.filter(QRegularExpression("Courier|Fixed"));

contains() 函数告诉您列表是否包含给定字符串,而 indexof() 函数返回给定字符串第一次出现的索引。另一方面,lastindexof() 函数返回字符串最后一次出现的索引。

最后,replaceinstrings() 函数依次调用字符串列表中的每个字符串上的 replace()。例如:

QStringList files;files << "$QTDIR/src/moc/moc.y"<< "$QTDIR/src/moc/moc.l"<< "$QTDIR/include/qconfig.h";files.replaceInStrings("$QTDIR", "/usr/lib/qt");// files: [ "/usr/lib/qt/src/moc/moc.y", ...]

使用QT的listview容器控件来显示QStringlist

 //使用数据列表创建数据显示模型QStringListModel *listmodel = new QStringListModel(src);ui->listView->setModel(listmodel);                   //设置模型到listview上ui->listView->setMovement(QListView::Free);          //设置数据可以自由拖动ui->listView->setSpacing(2);                         //设置数据的间距ui->listView->show();connect(ui->listView, SIGNAL(clicked(const QModelIndex)),this, SLOT(slotClicked(const QModelIndex)));

其中connect可以在双击以后,会触发slot槽函数。

这样可以实现listview显示出的接口控件是任意数量的。

像我自己喜欢获取的是listview里面,用户双击以后获得名称,具体代码实现如下:

void MainWindow::slotClicked(const QModelIndex &index)
{goal=index.data().toString();QStringList acquire=goal.split("-");
}

通过这个QModelIndex来传递变量名称,来实现传递。

另外,void QStringList::sort(Qt:CaseSensitivity cs=Qt:CaseSensitive)
按升序对字符串列表进行排序。如果cs Qt::CaseSensitive(默认值),则字符串比较区分大小写;换句话说comparison不区分大小写排序使用STL的std:sort()算法执行,该算法对线性对数时间进行平均,即O(n log n)如果想按任意顺序对字符串进行排序,请考虑使用QMap类。例如,您可以使用QMap<QString,QString>创建不区分大小写的排序(例如,键是字符串的小写版本,值是字符串),或者QMap<int,QString>按某个整数索引对字符串进行排序。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

armbian安装gcc、g++

文章目录 安装GCC安装G 安装GCC 打开终端&#xff0c;更新软件包列表&#xff1a; sudo apt update安装GCC&#xff1a; sudo apt install gcc如果需要安装特定版本的GCC&#xff0c;可以使用以下命令&#xff1a; sudo apt install gcc-<version> # sudo apt install g…

phpstudy_2016-2018_rce_backdoor 漏洞复现

phpstudy_2016-2018_rce_backdoor 漏洞复现 Remote Command Execute 打开 bp 打开代理浏览器 访问 php 页面 回到 bp 查看 http 历史&#xff0c;找到刚刚访问的 php 页面 发送到 Repeater 转到 Repeater php 页面请求内容加 Accept-Charset: 修改 Accept-Encodi…

Leetcode 142 环形链表II(链表:快2慢1指针相遇即有环)

Leetcode 142 环形链表II&#xff08;链表&#xff1a;快2慢1指针相遇即有环&#xff09; 解法1 https://leetcode.cn/problems/linked-list-cycle-ii/description/ 解法1 &#x1f534;1.【有无环】快慢指针&#xff0c;快指针每次走两步&#xff0c;慢指针每次走一步&#xf…

3、Flowable任务分配和流程变量

任务分配和流程变量 1.任务分配 1.1 固定分配 固定分配就是我们前面介绍的&#xff0c;在绘制流程图或者直接在流程文件中通过Assignee来指定的方式 1.2 表达式分配 Flowable使用UEL进行表达式解析。UEL代表Unified Expression Language&#xff0c;是EE6规范的一部分.Flo…

K-Means算法

c^(i)&#xff1a;xi分配到第i个簇 μ&#xff1a;质心 μci&#xff1a;即第xi个样本分配到的簇的质心 Step 1.从样本中随机选取K个点作为簇质心 2.每个点都指向离它最近的簇质心 3.遍历结束后&#xff0c;重新计算K值&#xff0c;即计算K个簇的平均值作为新的质心 重复23直…

MATLAB中ss2tf函数用法

目录 语法 说明 示例 质点-弹簧系统 双体振荡器 ss2tf函数的功能是将状态空间表示形式转换为传递函数。 语法 [b,a] ss2tf(A,B,C,D) [b,a] ss2tf(A,B,C,D,ni) 说明 [b,a] ss2tf(A,B,C,D) 将方程组的状态空间表示形式转换为等同的传递函数。ss2tf 返回连续时间方程组…

lark 发送图片消息

1. 需求 2. 实现 2.1 获取数据源 # -*- coding: utf-8 -*- import os import json import requests import pandas as pd from pathlib import PurePath, Path import plotly.express as px from requests_toolbelt import MultipartEncoderdef get_data():dt [2023-10-01, …

为什么嵌入通常优于TF-IDF:探索NLP的力量

塔曼纳 一、说明 自然语言处理&#xff08;NLP&#xff09;是计算机科学的一个领域&#xff0c;涉及人类语言的处理和分析。它用于各种应用程序&#xff0c;例如聊天机器人、情绪分析、语音识别等。NLP 中的重要任务之一是文本分类&#xff0c;我们根据文本的内容将文本分类为不…

基于VCO的OTA稳定性分析的零交叉时差模型研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Python 网络爬虫

爬虫原理 计算机一次Request请求和服务器端的Response回应&#xff0c;即实现了网络连接。 爬虫需要做两件事&#xff1a;模拟计算机对服务器发起Request请求。 接受服务器的Response内容并解析、提取所需的信息。 多页面爬虫流程 ​​​​​​​多页面网页爬虫流程

网络安全是什么?一文认识网络安全

一、网络安全 1.概念 网络安全从其本质上讲就是网络上的信息安全&#xff0c;指网络系统的硬件、软件及数据受到保护。不遭受破坏、更改、泄露&#xff0c;系统可靠正常地运行&#xff0c;网络服务不中断。 &#xff08;1&#xff09;基本特征 网络安全根据其本质的界定&#…

RK3588开发笔记(二):基于方案商提供sdk搭建引入mpp和sdk的宿主机交叉编译Qt5.12.10环境

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/133915614 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

Nginx的代理和负载均衡

一、nginx的代理方式 1.1 七层代理 七层代理&#xff1a;基于http协议&#xff0c;对请求的内容进行处理&#xff0c;然后转发到后端服务器 七层代理是客户端请求代理服务器&#xff0c;由代理服务器转发客户端的http请求&#xff0c;转发到内部的服务器进行处理(服务器可以是…

神经网络中的反向传播:综合指南

塔曼纳 一、说明 反向传播是人工神经网络 &#xff08;ANN&#xff09; 中用于训练深度学习模型的流行算法。它是一种监督学习技术&#xff0c;用于调整网络中神经元的权重&#xff0c;以最小化预测输出和实际输出之间的误差。 在神经网络中&#xff0c;反向传播是计算损失函数…

7.继承与多态 对象村的优质生活

7.1 民法亲属篇&#xff1a;继承&#xff08;inheritance&#xff09; 了解继承 在设计继承时&#xff0c;你会把共同的程序代码放在某个类中&#xff0c;然后告诉其他的类说此类是它们的父类。当某个类继承另一个类的时候&#xff0c;也就是子类继承自父类。以Java的方式说&…

E055-web安全应用-File Inclusion文件包含漏洞初级

课程名称&#xff1a; E055-web安全应用-File Inclusion文件包含漏洞初级 课程分类&#xff1a; web安全应用 实验等级: 中级 任务场景: 【任务场景】 小王接到磐石公司的邀请&#xff0c;对该公司旗下网站进行安全检测&#xff0c;经过一番检查发现了该论坛的某个页面存…

RK3568平台开发系列讲解(驱动篇)Linux 中断实验

🚀返回专栏总目录 文章目录 一、中断处理函数二、request_irq 函数三、中断号四、free_irq 函数五、中断使能与禁止函数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 Linux 内核提供了完善的中断框架,我们只需要申请中断,然后注册中断处理函数即可,使用非常方便…

Python自动化运维实战——Telnetlib和Netmiko自动化管理网络设备

❤️博客主页&#xff1a; iknow181&#x1f525;系列专栏&#xff1a; Python、JavaSE、JavaWeb、CCNP&#x1f389;欢迎大家点赞&#x1f44d;收藏⭐评论✍ 目录 一、前言 二、准备工作 三、Telnetlib Telnetlib介绍 Telnetlib模块及操作方法介绍 Telnetlib配置设备 T…

无人机遥控中应用的2.4GHz无线芯片

无人驾驶飞机简称“无人机”&#xff0c;英文缩写为“UAV”&#xff0c;是利用无线电遥控设备和自备的程序控制装置操纵的不载人飞机&#xff0c;或者由车载计算机完全地或间歇地自主地操作。是一种不需要人操控就能够自主飞行的飞行器&#xff0c;它可以执行多种任务&#xff…

温湿度监测技术又进化了,这个操作太牛了!

无论是在家庭、医疗、农业、制造业&#xff0c;还是在物流和食品行业&#xff0c;精确的温湿度监控对于确保安全、质量和效率都至关重要。 客户案例 医疗行业 在医疗行业&#xff0c;温湿度监控对于存储药品、生物样本和医疗设备至关重要。山东某医院引入了泛地缘科技推出的温湿…