QString与QByteArray相互转换方法

2024-05-04 21:48

本文主要是介绍QString与QByteArray相互转换方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载自:http://blog.csdn.net/xgbing


Qt GUI API中使用Unicode类型的字符串类QString。使用Unicode的好处是可以支持更多的地区语言,ASCII是Uncode的子集。

QByteArray和QString的方法和属性相似,可以参考QString。另外有一些与QByteArray相关的非成员函数:

[cpp] view plain copy
  1. //Related Non-Members  
  2.   
  3. //计算CRC16校验和  
  4. quint16 qChecksum ( const char * data, uint len )  
  5. //压缩data,并返回新的值,参数compressionLevel的值是0~9  
  6. QByteArray  qCompress ( const QByteArray & data, int compressionLevel = -1 )  
  7. QByteArray  qCompress ( const uchar * data, int nbytes, int compressionLevel = -1 )  
  8. //解压缩  
  9. QByteArray  qUncompress ( const QByteArray & data )  
  10. QByteArray  qUncompress ( const uchar * data, int nbytes )  
  11. //格式化字符串  
  12. int qsnprintf ( char * str, size_t n, const char * fmt, ... )  
  13. int qvsnprintf ( char * str, size_t n, const char * fmt, va_list ap )  
  14. //比较字符串  
  15. int qstrcmp ( const char * str1, const char * str2 )  
  16. //复制字符串  
  17. char *  qstrcpy ( char * dst, const char * src )  
  18. char *  qstrncpy ( char * dst, const char * src, uint len )  
  19. //分配空间复制字符串返回  
  20. char *  qstrdup ( const char * src )  
  21. //忽略大小写的字符串比较  
  22. int qstricmp ( const char * str1, const char * str2 )  
  23. int qstrnicmp ( const char * str1, const char * str2, uint len )  
  24. //返回字符串的长度  
  25. uint    qstrlen ( const char * str )  
  26. uint    qstrnlen ( const char * str, uint maxlen )  
  27. //固定长度内的字符串比较  
  28. int qstrncmp ( const char * str1, const char * str2, uint len )  
  29. //相关QByteArray和const char *的运算符  
  30. bool    operator!= ( const QByteArray & a1, const QByteArray & a2 )  
  31. bool    operator!= ( const QByteArray & a1, const char * a2 )  
  32. bool    operator!= ( const char * a1, const QByteArray & a2 )  
  33. const QByteArray    operator+ ( const QByteArray & a1, const QByteArray & a2 )  
  34. const QByteArray    operator+ ( const QByteArray & a1, const char * a2 )  
  35. const QByteArray    operator+ ( const QByteArray & a1, char a2 )  
  36. const QByteArray    operator+ ( const char * a1, const QByteArray & a2 )  
  37. const QByteArray    operator+ ( char a1, const QByteArray & a2 )  
  38. bool    operator< ( const QByteArray & a1, const QByteArray & a2 )  
  39. bool    operator< ( const QByteArray & a1, const char * a2 )  
  40. bool    operator< ( const char * a1, const QByteArray & a2 )  
  41. QDataStream &   operator<< ( QDataStream & out, const QByteArray & ba )  
  42. bool    operator<= ( const QByteArray & a1, const QByteArray & a2 )  
  43. bool    operator<= ( const QByteArray & a1, const char * a2 )  
  44. bool    operator<= ( const char * a1, const QByteArray & a2 )  
  45. bool    operator== ( const QByteArray & a1, const QByteArray & a2 )  
  46. bool    operator== ( const QByteArray & a1, const char * a2 )  
  47. bool    operator== ( const char * a1, const QByteArray & a2 )  
  48. bool    operator> ( const QByteArray & a1, const QByteArray & a2 )  
  49. bool    operator> ( const QByteArray & a1, const char * a2 )  
  50. bool    operator> ( const char * a1, const QByteArray & a2 )  
  51. bool    operator>= ( const QByteArray & a1, const QByteArray & a2 )  
  52. bool    operator>= ( const QByteArray & a1, const char * a2 )  
  53. bool    operator>= ( const char * a1, const QByteArray & a2 )  
  54. QDataStream &   operator>> ( QDataStream & in, QByteArray & ba )  


QByteArray与QString之间的转换:

示例:

QByteArray cstr("abcd");
QString s = cstr; 


QByteArray cstr("abcd");
QString s;
s.prepend(cstr);


QString s("hello");
QByteArray cstr = s.toAscii();


QString s("hello");
QByteArray cstr = s.toLatin1();


QByteArray类同样不以'\0'为结尾:如

[cpp] view plain copy
  1. QByteArray s;  
  2. s.resize(5);  
  3. s[0] = '1';  
  4. s[1] = '2';  
  5. s[2] = '3';  
  6. s[3] = '\0';  
  7. s[4] = 'a';  
  8.   
  9. cout << s << endl;  

屏幕打印的是:“123 a”

这篇关于QString与QByteArray相互转换方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/960159

相关文章

解决C/C++ 头文件相互包含 问题的方法

所谓超前引用是指一个类型在定义之前就被用来定义变量和声明函数。 类A和类B需要彼此互相引用,这样必然有一个类会先被定义,而另外一个类后被定义,这样在 先被定义的类引用后被定义的类的时候,就导致了所谓的超前引用。 超前引用导致的错误有以下几种处理办法:   1) 使用类声明    在超前引用一个类之前,首先用一个特殊的语句说明该标识符是一个类名,即将被超前引用。其使用方法是

数据流与Bitmap之间相互转换

把获得的数据流转换成一副图片(Bitmap) 其原理就是把获得倒的数据流序列化到内存中,然后经过加工,在把数据从内存中反序列化出来就行了。 难点就是在如何实现加工。因为Bitmap有一个专有的格式,我们常称这个格式为数据头。加工的过程就是要把这个数据头与我们之前获得的数据流合并起来。(也就是要把这个头加入到我们之前获得的数据流的前面)      那么这个头是

【鸿蒙HarmonyOS NEXT】页面之间相互传递参数

【鸿蒙HarmonyOS NEXT】页面之间相互传递参数 一、环境说明二、页面之间相互传参 一、环境说明 DevEco Studio 版本: API版本:以12为主 二、页面之间相互传参 说明: 页面间的导航可以通过页面路由router模块来实现。页面路由模块根据页面url找到目标页面,从而实现跳转。通过页面路由模块,可以使用不同的url访问不同的页面,包括跳转到U

QString如何追加字符串

在Qt中,QString 类提供了多种方法来追加字符串。最常用的方法是使用 append() 成员函数。这个函数允许你将一个 QString、char 数组、QByteArray 或者其他可转换为 QString 的类型追加到 QString 对象的末尾。 以下是一些使用 append() 方法的例子: 追加另一个 QString QString str1 = "Hello, ";QStr

QString如何格式化字符串

在Qt中,QString类提供了多种方式来格式化字符串。这包括使用arg()方法、sprintf()风格的格式化(通过QString::asprintf()或QString::number()等辅助函数),以及从Qt 5.10开始引入的C++11风格的格式化(虽然Qt核心库本身并不直接支持C++20的std::format,但你可以使用第三方库或自己实现类似的功能)。不过,最常用的方法之一是使用a

解决Visual C++ 中相互包含头文件的问题

在编MFC应用程序时,经常会遇到头文件相互包含的问题,很是苦恼,于是便求助于强大的CSDN,得到如下答案:   方法一:利用友元类   我一共有两个类,由于要在两个类的头文件里互相应用对方,所以,在每一个类的头文件里面现包含另一个类的头文件,然后在该类的定义中声明另一个类为友元类。如下:    #include "B.h"      class CA: public CDialog

Qt的QString和C++string之间的转换

QString qstr; string str; //将QString转化为C++的string str = qstr.toStdString(); //将C++的string转化为QString qstr = QString::fromStdString(str);

HSV颜色空间和RGB颜色空间相互转换C语言实现

HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。 色调H 用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色

学习记录-Qt之QString格式化字符串

1.自动补零 int val = 16;// 0fQString str = QString("%1").arg(val & 0xFF, 2, 16, QLatin1Char('0'));// 0016QString str = QString("%1").arg(val, 4, 10, QLatin1Char('0'));

[Python][不是说CPython]Cython语法与Pyton语法对比及相互转换和Python引入C函数完整示例

Cython语法与Pyton语法对比及相互转换和Python引入C函数完整示例 注意,这里说的Cython不是CPython啊,两码事。 Cython的语法在这里。 Cython 是 Python 的超集,旨在提高 Python 代码的执行速度。它允许你在 Python 代码中混合使用 C 语言的功能和类型,使得代码在一些场景下能够显著加速。以下是 Cython 语法和 Python 语法的对比