QT的QStringList的使用

这篇具有很好参考价值的文章主要介绍了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>按某个整数索引对字符串进行排序。文章来源地址https://www.toymoban.com/news/detail-744550.html

到了这里,关于QT的QStringList的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件设计开发笔记4:QT操作SQLite数据库

      有时候我们需要在软件中记录一些历史数据以便于对数据的查询。而我们希望软件不能太复杂,体量也不要太大,这个时候就需要如SQLite这样轻量级的数据库。这篇中我们就来讨论如何在使用QT开发应用是操作SQLite数据库。   SQLite是一款开源、轻量级、跨平台的数据库

    2024年02月09日
    浏览(65)
  • C++ Qt开发:数据库与TableView多组件联动

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍 TableView 组件与数据库联动的常用方法及灵活运用。 在Qt中,通常我们不会在

    2024年02月04日
    浏览(51)
  • QT+SQLite数据库配置和使用

    一、简介 1.1 SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统。Qt5以上版本可以直接使用SQLite(Qt自带驱动)。 二、下载和配置 2.1 SQLite下载官网下载链接 2.2 根据计算机的配置,选择所需项目是64位还是32位下载对应的压

    2024年02月06日
    浏览(51)
  • 使用QT连接access数据库详解(清晰、透彻)

    第一步、查看我们自己电脑上access数据库驱动是32位的还是64位的,查看方法:通过odbc数据源管理器进行查看,odbc数据源管理器分为32位和64位: 32位odbc数据源管理器查看如下:注意是syswow64文件夹中  下面图片证明:access数据库驱动是32位的:  我们也可以打开64位的odbc数据

    2024年02月06日
    浏览(91)
  • QT学习笔记-oracle oci数据库驱动交叉编译并移植到ARM开发板

    在上一文《QT学习笔记-QT安装oracle oci驱动》中介绍了在Windows环境下使用QT访问oracle数据库时遇到驱动无法加载问题的解决办法,大体思路是对QT源码中数据库驱动的源码oci进行编译,要想通过编译需要依赖对应数据库的头文件和库(可以通过下载oracle instant client),编译通过

    2024年02月13日
    浏览(57)
  • QT 5.9.9 配置使用 MYSQL5.7 数据库

    目录 Mysql下载安装 QT 下载安装 编译MYSQL mingw构建方式 msvc构建方式 QT中MYSQL测试使用 因为版权问题,Qt本身不自带Mysql数据库的驱动,因此如果想要借用Qt操作Mysql数据库,需要手动进行编译。 【Qt】 Mysql服务端安装教程 【Qt】 Mysql 库安装 1,可以选择安装服务端或者安装库文件

    2024年02月11日
    浏览(56)
  • Qt+MySql开发笔记:Qt5.9.3的msvc2017x64版本编译MySql8.0.16版本驱动并Demo连接数据库测试

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130381428 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…   mysql驱动版本msvc2015x32版本调

    2023年04月26日
    浏览(87)
  • QT基础篇(13)QT5数据库

    1.数据库基本概念 数据库(Database)是指存储、管理和组织数据的集合。它是一个组织化的、可持久化的数据集合,用于支持数据的存储、检索、更新和管理。 数据库系统(Database System)是建立在计算机上的数据管理系统,由数据库、数据库管理系统(DBMS)和应用程序组成。

    2024年01月22日
    浏览(45)
  • 【Qt6】QStringList

    2023年10月31日,周二上午 QStringList 是 Qt 中的一个类,用于存储一组字符串。它提供了一些方便的方法来操作和管理字符串列表。 QStringList 可以用于存储任意数量的字符串,并提供了一些常用的操作,例如添加、删除、查找、排序等。它是基于 QStringList 类的 QVectorQString 的封装

    2024年02月06日
    浏览(36)
  • 【QT 基础教程 七】QStringList类详解

    概要:本期主要讲解Qt中的QStringList类的常用接口。 头文件:#includeQStringList 模块: QT += core 父类 : QListQString 功能:根据字面理解的话,QStringList是存储QString的QList.所以你可以认为QStringList是存储类型为QString的列表。学过QStringList,那么QList的使用你也学会了。 1.数组方式访

    2024年02月16日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包