字符串截取:
QString str = "abcdefg";
str.mid(2,2); //return cd 从下表索引为2开始取2个字符
str.mid(3); //return defg 从下表索引为3开始的所有字符
str.left(3); //return abc 取左边 3个字符
str.right(3); //return efg 取右边3个字符
str.left(str.lenght()-3); //return defg 取 除右边3个字符的所有字符
str.right(str.length()-3); //return abcd 取 除左边3个字符的所有字符
数据转换:
字符串转10进制
QString num = "FF";
QString num2 = "99";
bool ok;
num.toInt(&ok,16); //return 255 (int) 将字符串代表的16进制数转换成10进制
num.toInt(&ok,10); //return 0 (int) 将字符串代表的10进制数转换成10进制
num.toUInt(); //return 0 (int) 等于toInt(&ok
num2.toInt(&ok,10); //return 99 (int)
num2.toInt(&ok,16); //return 153 (int)
num2.toUInt(); //return 99 (int)
QString 转 QByteArray
num.toUtf8(); //return "FF" 返回字符串的UTF-8表示形式,即QByteArray,UTF-8是一种Unicode编解码器,可以表示Unicode字符串中的所有字符,比如QString
num.toLatin1(); //return "FF" 返回字符串的Latin-1表示形式,即QByteArray,如果字符串包含非拉丁字符,则返回的字节数组是未定义的。这些字符可以被删除或替换为问号
//还有其他的,根据实际需求使用
toHex()和fromHex()的相互转换
num.toUtf8().toHex(); //return "4646" ASCII表中 F对应的16进制是0x46 ; 返回字节数组的十六进制编码副本。十六进制编码使用数字0-9和字母a-f。
num.Latin1().toHex(); //return "4646" ASCII表中 F对应的16进制是0x46;返回字节数组的十六进制编码副本。十六进制编码使用数字0-9和字母a-f。
QByteArray::fromHex(num.Latin1().tohex()); //return "FF" 返回字节数组的十六进制编码副本
int 转QString
QString::number(10); //return "10"
QString::number(10,16); //return "a" 转换成16进制字符串
大小写转换
num.toUpper(); //return "FF"
num.toLower(); //return "ff"
字符填充
int data = 11;
QString("%1").arg(data,4,16,QLatin1Char('0')); //return "000b" 将int 10进制 数据转换成 4 位 16 进制 字符串,不足4位的用 0 补充
去除字符串空格
QString str = "a b c d e f";
str.remove(QRegExp("\\s")); //return abcdef
QPlainTextEdit 中添加文字,并改变文字颜色
QString str = "aaaaaaaaa";
ui->recTextEdit->moveCursor(QTextCursor::End); //将光标移至末尾
ui->recTextEdit->appendHtml(QString("<font color=\"#FF0000\">%1</font> \r ").arg(str)); //QPlainTextEdit中显示颜色为#FF0000的aaaaaaaaa
//如果使用QTextEdit
ui->recTextEdit->appendHtml();换成ui->recTextEdit->append();
//其他文本框类似,自己灵活运用
以上内容为学习使用过程中逐步添加的,可能会有错漏之处,不要盲目照搬,本人自学时间较短,且没有系统学习过,错楼之处请大家指点。