Qt 字符串的操作,转换成 int、16进制

qt 专栏收录该内容
29 篇文章 0 订阅

字符串截取:

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(1016);   //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();
//其他文本框类似,自己灵活运用

以上内容为学习使用过程中逐步添加的,可能会有错漏之处,不要盲目照搬,本人自学时间较短,且没有系统学习过,错楼之处请大家指点。

  • 1
    点赞
  • 0
    评论
  • 18
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值