QT QString类
字符串有如下几个操作符
QString提供了一个二元的"+"操作符用于组合两个字符串,并提供了一个"+="操作符用于将一个字符串追加到另一个字符串的末尾,例如:
QString str1="welcome";
str1=str1+"to you !";//str1="welcome to you !"
QString str2="hello ,";
str2+="world!"//str2="hello ,world!"
QString::append()函数具有与"+="操作符同样的功能,实现在一个字符串的末尾追加另一个字符串,例如:
QString str1="welcome";
QString str2="to";
str1.append(str2);//str1="welcome to"
str1.append("you !");//str1="welcome to you!"
组合字符串的另一个函数QString::sprintf(),此函数支持的格式定义符和C++库中的函数sprintf()定义一样,例如
QString str;
str.sprintf("%s","welcome");//str="welcome"
str.sprintf("%s","to you!");//str="to you!"
str.sprintf("%s %s","welcome ","to you");//str="welcome to you"
void Dialog::add()
{
QString s1=edit1->text();
QString s2=edit2->text();
QString s3=s1+s2;
s3+="end!";
/*
* QString内部维护了字符串数组
*/
const char *arr=s3.toStdString().data();
QString s4=arr;
QString s5;
//注意sprintf的参数是字符串,而不是QString对象
s5.sprintf("%s","welcome ");
s5.sprintf("%s","to you!");
s5.sprintf("%s - %s",s1.toStdString().data(),s2.toStdString().data());
label1->setText(s5);
}
比较两个字符串也是经常使用的功能,QString提供了多种比较手段。
operator<(const QString &);比较一个字符V换是否小于另一个字符串,如果是,则返回true。
operator<=(const QString &);比较一个字符串是否小于等于另一个字符串,如果是,则返回true。
operator==(const QString &);比较两个字符串是否相等,如果相等,则返回true。
operator>=(const QString &);比较一个字符串是否大于等于另一个字符串,如果是,则返回true。
QString::toInt()函数将字符串转换为整型数值,类似的函数还有toDouble、toFloat()、toLong()、toLongLong()等。下面例子说明其用法:
QString str="";
bool ok=false;
int hex=str.toInt(&ok,);//ok=true,hex=293
int dec=str.toInt(&ok,);//ok=true,dec=125
QString提供的字符编码集的转换函数将会返回一个const char*类型版本的QByteArray,即构造函数QByteArray(const char *)构造的QByteArray对象。
QByteArray类具有一个字节数组,它既可以存储原始字节(raw bytes).也可以存储传统的以""结尾的8位的字符串,在QT中,
使用QByteArray比使用const char *更方便,且QByteArray也支持隐式共享,转换函数有以下几种
toLatinl()返回一个Latin-l(ISO08859-)编码的8位字符串。
toUtf8(),返回一个UTF-8编码的8位字符串(UTF-8是ASCLL码的超级,它支持整个unicode字符集)
QString s=tr("A");
QByteArray buf1=s.toUtf8();
QString tmp;
tmp.sprintf("%x",buf1.constData()[]);
void Dialog::add()
{
QString s1=edit1->text();
QString s2=edit2->text();
/*
* tr()是QObject提供的一个函数,为多语言而准备的,所有的QT类都是继承于QObject
* 例如英语中的字符串"ok",在中文中是"好",但是这两个字符串所占用的内存空间并不相同
* tr()函数为多语言的字符串留出内存空间
*
*/
QString s3=tr("A");
QByteArray buf1=s3.toUtf8();
QString tmp;
tmp.sprintf("%x",buf1.constData()[]);
/*这里打印的是十六进制的ascll码*/
label1->setText(tmp);
}
一个NULL字符串就是使用QString的默认构造函数或者使用"(const char *)0"作为参数的构造函数创建的QString字符串对象;而一个空字符串是
一个大小为0的字符串。一个NULL字符串一定是一个空字符串,二一个空字符串未必是一个NULL字符串。例如:
QString().isNull();//结果为true
QString().isEmpty();//结果为true
QString("").isNull();//结果为false
QString("").isEmpty();//结果为true
QT QString类的更多相关文章
- Qt QString类及常用函数功能详解
QString 是 Qt 编程中常用的类,除了用作数字量的输入输出之外,QString 还有很多其他功能,熟悉这些常见的功能,有助于灵活地实现字符串处理功能. QString 存储字符串釆用的是 Un ...
- Qt 的QString类的使用
Qt的QString类提供了很方便的对字符串操作的接口. 使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替. QString::fill ( QChar ch, int size ...
- Qt常用类——Qstring
Qstring有一些方面跟C/C++中的string的使用,例如把一个字符串追加到另一个字符串中,也是用“+”.也有append函数等. 下面是是Qstring的一些常用的具体函数示例: Qt的QSt ...
- Qt学习之路(1)------Qt常用类用法说明
Qt常用类 向控制台输出文本 第一个例子,我们采用STL的方式: console.cpp #include <iostream> int main() { std::cout <&l ...
- QString类的使用(无所不包,极其方便)
Qt的QString类提供了很方便的对字符串操作的接口. 使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替. QString::fill ( QChar ch, int size ...
- Qt 串口类QSerialPort 使用笔记
Qt 串口类QSerialPort 使用笔记 虽然现在大多数的家用PC机上已经不提供RS232接口了.但是由于RS232串口操作简单.通讯可靠,在工业领域中仍然有大量的应用.Qt以前的版本中,没有提供 ...
- 详解 QT 主要类 QWidget
QWidget类是所有用户界面对象的基类,每一个窗口部件都是矩形,并且它们按Z轴顺序排列的.一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分. 先来看内容. AD: 2013云计算架构师 ...
- 【学习笔记】QT常用类及应用
一.QT基类: QObject 二.QT中常用的库 QT中的类根据功能划分在不同的库中,在用户属性.pro文件中可以看到. 三.Qt基本对话框的使用 常用5类: 通过类名可以直接调用类的静态成员函数. ...
- Qt QString转char[]数组
Qt QString转char[]数组 QString s1="1234456";char str[20]={0};strcpy(str,s1.toStdString().c_st ...
随机推荐
- 关于https的Error:Error Domain=NSURLErrorDomain Code=-1012
昨天闲着没事就随便搞点demo,随便找了一个https的接口,运行之后,一直发现Error Domain=NSURLErrorDomain Code=-1012.好奇怪,请求https的配置我基本都配 ...
- 【原】训练自己的haar-like特征分类器并识别物体(3)
在前两篇文章中,我介绍了<训练自己的haar-like特征分类器并识别物体>的前三个步骤: 1.准备训练样本图片,包括正例及反例样本 2.生成样本描述文件 3.训练样本 4.目标识别 == ...
- 插入排序(java版)
public class InsertSortTest{ public static void InsertSort(int[] source) { //默认第一个元素已排序 for (int i = ...
- node.js之excel文件读取
金天:学习一个新东西,就要持有拥抱的心态,如果固守在自己先前的概念体系,就会有举步维艰的感觉.node.js解析excel, 读取记录. 业务需求,从excel (xlsx, xls)导入数据. 备选 ...
- [LoadRunner]性能测试实践_Hessian协议脚本编写
第一步,新建LR的脚本,选择Java Vuser协议: 第二步,编写hessian测试脚本,如下: import lrapi.lr; import java.net.MalformedURLExcep ...
- python arguments *args and **args ** is for dictionaries, * is for lists or tuples.
below is a good answer for this question , so I copy on here for some people need it By the way, the ...
- Memcache限制端口和访问IP
Memcache安装十分简单,默认情况下是任何人都可以访问服务器上缓存的数据,所以如果不作处理的话 是很不安全的(乌云上已经提交有很多与此相关的问题) 1.首先要保证服务器上的防火墙都是开启的 2.设 ...
- SpringMVC 返回 html 视图页面,SpringMVC与Servlet,Servlet重定向与转发
1. SpringMVC与Servlet的关系 SpringMVC框架是建立在Servlet之上的,提供各种功能,各种封装,各种方便的同时,它一点儿也没有限制Servlet,我们完全可以在Spring ...
- linux中如何查看进程对应的cpu使用情况?
使用ps aux | grep <进程名>即可查看指定进程的cpu使用情况.
- python strip() lstrip() rstrip() 使用方法
Python中的strip用于去除字符串的首尾字符串,同理,lstrip用于去除最左边的字符,rstrip用于去除最右边的字符. 这三个函数都可传入一个参数,指定要去除的首尾字符. 需要注意的是,传入 ...