QByteArray
- 初始化
QByteArray arr("abc")
QByteArray arr;
arr.resize(3);
arr[0] = 'A';
arr[1] = 'B';
arr[2] = 'C';
char data[3] = { 0x41, 0x42, 0x43 };
QByteArray arr= QByteArray((const char *)data, sizeof(data));
- 读取
QByteArray arr("1234");
qDebug()<<arr.at(0)<<arr[1]<<arr.left(2)<<arr.mid(1,2)<<arr.right(2);
- 修改
QByteArray arr("1234");
arr.prepend( "abc");
arr.append( "567");
arr.insert( 3, "def");
arr.replace(2,3,"xyz");
arr.remove(0,5);
- 数值转换
QByteArray arr("1234");
QByteArray harr("F");
QByteArray farr("123.456");
bool ok1;
qDebug() << arr.toInt();
qDebug() << harr.toInt(&ok1,16);
qDebug() << farr.toDouble();
QByteArray arr1 = QByteArray::number(123.456, 'E', 1);
QByteArray arr2 = QByteArray::number(123.456, 'f', 1);
QByteArray arr3 = QByteArray::number(1234);
QByteArray arr4 = QByteArray::number(123.456);
QString
- 初始化
QString str = "Hello";
QByteArray arr("1234");
QString str(arr);
char buf[] = "abc\r\n";
QString str = QString::fromUtf8(buf);
- 修改
QString str;
QString userName("abc");
char data[] = "def";
str += userName + data + "1234"+ "\n";
QString str = "1234";
str.prepend("abc");
str.append("567\n");
- 数值转换
QString str = QString::number(123.456);
str.setNum(123.456);
bool ok; double d = str.toDouble(&ok);
QString arg
- arg(str1).arg(str2).arg(str3) 形式
- 多个arg级联是按从左到右的顺序依次替换
- 替换%按自然数递增的顺序依次替换
QString str = QString("%2 %3 %1").arg("%2ABC").arg("123")
- arg(int, int, int) 形式
- 显示十进制100
QString str = QString("%1").arg(100, 0, 10);//"100"
- 显示十六进制100
QString str = QString("%1").arg(100, 0, 16);// "64"
- 显示八进制100
QString str = QString("%1").arg(100, 0, 8);// "144"
- arg(double, int, char, double) 形式
- 显示4位数字
QString str = QString("%1").arg(123.456789, 0, 'g',4);// "123.5"
- 科学表示法显示4位数字
QString str = QString("%1").arg(123.456789, 0, 'e',4);// "1.2346e+02"
转换
- QByteArray 转 QString
QByteArray buf("abc");
QString str = buf;
QByteArray buf("程序");
QTextCodec *tc = QTextCodec::codecForName("GBK");
QString str = tc->toUnicode(buf);
- QString 转 QByteArray
QString str("abc");
QByteArray arr = str.toUtf8();
- char* 转 QString
char buf[] = "abc";
QString str = QString::fromUtf8(buf) ;
char buf[] = "程序";
QString str = QString::fromLocal8Bit(buf);
- QString 转 char*
QString str = "abc";
qDebug()<<str.toUtf8().data();
- 转换成十六进制字符串
QByteArray arr;
arr.resize(3);
arr[0] = 0xa1;
arr[1] = 0xb2;
arr[2] = 0xc3;
QString str=arr.toHex().data();
str=str.toUpper();
qDebug()<<str;
- 十六进制编码
QString str="A1B2C3";
QByteArray arr = QByteArray::fromHex (str.toLatin1().data());
乱码
#include <QTextCodec>
QByteArray arr("程序");
QTextCodec *tc = QTextCodec::codecForName("GBK");
QString str= tc->toUnicode(arr);
qDebug()<<str;
QByteArray arr("程序");
qDebug()<<QString::fromLocal8Bit(arr);
qDebug()<<QStringLiteral("程序");