Qt中QStringList与QString的常用方法总结

目录
  • QString 转 QByteArray
  • QByteArray 转 QString
  • QStringList 转 QString
  • QStringList 其他常用方法
  • QString 其他常用方法

本文汇集了QString 与 (QStringList | QByteArray)之间的转换,以及QString、QStringList的一些常用方法。

QString 转 QByteArray

//method<1>
QString src1("hello kandy");
QByteArray ba1 = src1.toUtf8();

//method<2>
QString src2("hello kandy");
QByteArray ba2 = src2.toLatin1();

QByteArray 转 QString

//method<1>
QByteArray ba1("hello world");
QString str1 = ba1;

//method<2>
QByteArray ba2("hello world");
QString str2;
str2.prepend(ba2);

QStringList 转 QString

QStringList listemp;
listemp << "Apple" << "Grape" << "Orange" << "Banana";
QString str = listemp.join(",");
qDebug() << "\r\nstr:" << str;
//输出结果如下
//str: "Apple,Grape,Orange,Banana"
QString转 QStringList
QString strtmp = "apple:5.99;grape:12.5;orange:6.99";
QStringList fruits = strtmp.split(";");
qDebug() << "\r\nfruits:" << fruits;
//fruits: ("apple:5.99", "grape:12.5", "orange:6.99")

//
for(int i=0; i < fruits.size(); i++)
{ 

    QStringList fruit = fruits[i].split((":"));
    qDebug() << "fruit:" << fruit;
    /* fruit: ("apple", "5.99") fruit: ("grape", "12.5") fruit: ("orange", "6.99") */
}

QStringList 其他常用方法

//使用QStringList拆分QString
QString str = "hello,world,I,am,kandy";
QStringList strlist = str.split(",");
qDebug() << "strlist=" << strlist;
//输出:strlist=("hello","world","I","am","kandy");

//判断QStringList中是否包含某个成员
bool bcontain = strlist.contains("kandy");
qDebug() << "bcontain=" << bcontain;

//移除QStringList中的成员
strlist.removeOne("world");
qDebug() << "after removeOne, strlist=" << strlist;

QString 其他常用方法

//QString定义
QString s1 = "hello";
QString s2("world");

//字符串连接
QString str = s1 + s2;

//组包
str = QString("a=%1, b=%2, c=%3").arg("hello").arg("world").arg("12.34");
qDebug() << str;//"a=hello, b=world, c=12.34"

str = "a=hello, b=world, c=12.34";
//参数表示按逗号分隔,拆分出第0段到第1段
QString tmp = str.section(",", 0, 1);
qDebug() << "tmp=" << tmp;
//tmp= "a=hello, b=world"

//参数表示按逗号分隔,拆分出第0段到第0段
tmp = str.section(",", 0, 0);
qDebug() << "tmp=" << tmp;
//tmp= "a=hello"

//QString转char *

//如果没有中文(即字符串为ASCII):
QString ss1 = "hello test";
QByteArray byte1 = ss1.toLatin1();
char * szbuff1 = byte1.data();

//如果有中文(即字符串为Unicode):
QString ss2 = QString::fromStdWString(L"你好, 世界");
QByteArray byte2 = ss2.toLocal8Bit();
char * szbuff2 = byte2.data();

//替换QString中字符串
QString text("text-decoration: none");
text.replace("none", "underline");
qDebug() << "after replace, text=" << text;

//字符移除操作
QString sztmp = QString("hello,china").remove(2, 4); //从下标2的字符开始, 移除4个字符
qDebug() << "sztmp=" << sztmp; //输出hechina

//判断字符是否以某字符或字符串开始/结束(startsWith/endsWith)
if (QString("@192.168.0.1#").startsWith("@"))
{ 

    qDebug() << "startsWith(\"@\")";
}
if (QString("@192.168.0.1#").endsWith("#"))
{ 

    qDebug() << "endsWith(\"#\")";
}

//判断QString是否空
qDebug() << "QString().isEmpty()" << QString().isEmpty();            //true
qDebug() << "QString("").isEmpty()" << QString("").isEmpty();        //true
qDebug() << "QString(" ").isEmpty()" << QString(" ").isEmpty();        //false
qDebug() << "QString(\"hi\").isEmpty()" << QString("hi").isEmpty();    //false

qDebug() << "QString().isNull()" << QString().isNull();                //true
qDebug() << "QString("").isNull()" << QString("").isNull();            //false
qDebug() << "QString(" ").isNull()" << QString(" ").isNull();        //false
qDebug() << "QString(\"hi\").isNull()" << QString("hi").isNull();    //false

到此这篇关于Qt中QStringList与QString的常用方法总结的文章就介绍到这了,更多相关Qt QStringList QString内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Qt基础开发之QString与QByteArray详细用法与区别及QString QByteArray互转

    QString Qt的QString类提供了很方便的对字符串操作的接口,QString没有继承任何Qt基类. QString::arg()用法 QString str = QString("%1 %2 %3").arg(1).arg(2.0).arg("hello"); ​ %1, %2, %3作为占位符,将被后面的arg()函数中的内容依次替换,比如%1将被替换成1,%2将被替换成2.0,%3将被替换成"hello".输出为:"1 2

  • Qt QString的使用实现

    QString则使用隐式共享,又称回写复制.当两个对象共享同一份数据时,数据内容不改变,则不进行数据的复制,即将深拷贝和浅拷贝结合起来使用. QString使用时在连续的内存块上保存字符串,QString内存分配策略如下: 范围0~20:每次4个字符. 范围20~4084:每次2倍. 范围4084~∞:每次2048个字符. +:连接字符串 QString str1 = "I "; QString str2 = "LOVE "; QString str3 = &quo

  • Qt开发之QString类的使用教程详解

    目录 介绍 QString常用函数 常用四则运算符 介绍 采用Unicode编码 采用隐式共享技术,节省内存和不必要的数据拷贝 隐式共享介于浅拷贝和深拷贝之间,当两个string对象赋值时,会实现浅拷贝(共享一块内存),如果某个对象被修改了,则会实现深拷贝(从新开辟内存) 跨平台使用,不需要考虑不同平台的兼容性 QString直接支持字符串与数字的相互转换 QString直接支持字符串大小比较 QString直接支持不同字符编码间的相互转换 QString直接支持std::string和std:

  • Qt中QStringList与QString的常用方法总结

    目录 QString 转 QByteArray QByteArray 转 QString QStringList 转 QString QStringList 其他常用方法 QString 其他常用方法 本文汇集了QString 与 (QStringList | QByteArray)之间的转换,以及QString.QStringList的一些常用方法. QString 转 QByteArray //method<1> QString src1("hello kandy");

  • QT中如何读写ini配置文件

    如图1所示,我们需要在QT界面中实现手动读取参数存放的位置,那么我们该如何做呢? 方法:读取ini格式的配置文件,实现路径的写入与读取. 第一步:界面构造函数中,初始化一个Config.ini文件 //初始化一个.ini配置文件 //qApp是QT系统自带的,可以直接使用 QString iniFilePath=qApp->applicationDirPath()+"/Config.ini"; //如果不存在Config.ini,便生成一个Config.ini.如果已经存在了,则

  • Qt 中开启线程的多种方式小结

    目录 简介 1. 继承 QThread 重写 run 函数 2. 继承 QObject 调用 moveToThread 3. 继承 QRunnable 重新 run 函数,结合 QThreadPool 实现线程池 4. 使用 C++ 11 中的 sth::thread 5. Qt QtConcurrent 之 Run 函数 简介 在开发过程中,使用线程是经常会遇到的场景,本篇文章就来整理一下 Qt 中使用线程的五种方式,方便后期回顾.前面两种比较简单,一笔带过了,主要介绍后面三种.最后两种方法博

  • Qt中树形控件Tree Widget的使用方法汇总

    最近需要用到Tree Widget树形控件,现将自己的一些理解记录下来. Tree Widget在项目控件组(Item Widgets)里面可以找到.这种控件其实有时还是很有用处的,我主要利用的是带有复选框的树形控件.结果如图所示; 当选中顶层的树形节点时,子节点全部被选中:当取消选择顶层树形节点时,子节点的选中状态将全部被取消,二当选中子节点是,父节点显示部分选中的状态. 几个主要的函数: setCheckState设置复选框: ItemIsUserCheckable 项目上是否有复选框 It

  • Qt中QZXing 的编译与使用

    目录 0.前言 1.编译 2.二维码生成 3.二维码识别 0.前言 zxing 是一个开源的一维/二维条码图像处理库,当前版本为 Java 语言开发: https://github.com/zxing/zxing QZXing 是 ZXing 的 Qt 移植版本,同样还有 cpp 等语言和框架的移植版本.从 QZXing 的文档可以看到,只有 QR Code 二维码支持编码,其他都只支持解码. https://github.com/ftylitak/qzxing 1.编译 下载源码后可以用 CM

  • Qt中网络编程的实现

    目录 一.tcp/IP协议簇与udp 1.TCP/IP协议族 2.udp 3.常用的通讯协议小结 二.Qt中的tcp(这里只展示代码) 1.tcpsever 2.tcpclient 三.QT中的Udp 由于我没有系统的分享一些简单的计算机网络有关的,下面只是简单讲讲tcp/ip协议簇和udp 一.tcp/IP协议簇与udp 1.TCP/IP协议族 TCP/IP实际上是一个协同工作的通信家族,为网络通信提供通路.为方便讨论TCP/IP协议族,大体上分为三部分: ①.Internet协议(IP).

  • QT中QChart绘制折线图

    目录 一.简单绘图 二.绘制折线图 实例 一.简单绘图 Qt Charts基于Qt的Graphics View架构,其核心组件是QChartView 和 QChart QChartView是显示图标的视图,基类为QGraphicsView QChart的基类是QGraphicsltem 类的继承关系: 创建项目:.pro文件中添加:QT += charts代码如下:其他文件未修改,修改代码只在mainwindow.cpp文件中进行.mainwindow.cpp #include "mainwin

  • QT中窗口关闭自动销毁的实现示例

    目录 qt关于窗口关闭触发函数/信号 方法一. 方法二. 我们知道c++内存管理的一个规则:new出来的对象,一定要delete. 我们实现一个弹窗的时候,有时候继承widget,有时候继承dialog.不管哪种,窗体调用show方法后,不可能直接delete. 当然,new该窗体的时候,指定了父对象,就可以不用显示调用delete,它会随着父对象的销毁而销毁. 那这时候,关闭弹窗的操作,就仅仅是隐藏了.为了实现真正的delete.我们需要设施窗口的一个属性 DeleteOnClose,具体方法

  • QT中对Mat类的一些操作详解

    目录 一.类型转换 二.保存至数据库 一.类型转换 opencv在QT中的应用通常会涉及到这三者的转换,即Mat.QImage.QPixmap.下面分别给出了 Mat转QImage QImage转Mat Mat转QPixmap 1️⃣:Mat转QImage QImage MainWindow::MatToImage(const Mat &m) //Mat转Image { switch(m.type()) { case CV_8UC1: { QImage img((uchar *)m.data,m

随机推荐