Qt入门-QByteArray类

分类: [软件]Qt+VS2008 2012-07-22 16:18 963人阅读 评论(0) 收藏 举报

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

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

  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'为结尾:如

  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”
posted on 2012-12-06 01:15 姚先进 阅读(2337) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: