qt QString 与 int,char的转换

每次QString转换int或者char的时候都要查资料,记录一下,方便下次查看。

参考:

  http://blog.csdn.net/ei__nino/article/details/7297791

  http://www.cnblogs.com/Romi/archive/2012/03/12/2392478.html

QString 转 char

Qstring  str;

char*  ch;

QByteArray ba = str.toLatin1();    

ch=ba.data();

16进制的QSting转成int

遇到例如'0xFF','0XFF'的QString

QString addr_s = ui->lineEdit_addr->text();
unsigned char addr ;
bool ok;
//判断是否是'0x'或者'0X'开头
if (addr_s.startsWith("0x") || addr_s.startsWith("0X"))
{
    QString addr_t = addr_s.mid(2);                 //QString截取,从索引值为2的位置开始
    addr = (unsigned char)addr_s.toInt(&ok, 16);    //转成16进制
}
else
{
    // 10进制直接转化
    addr = addr_s.toInt();
}

int转QString

long a = 63;  
QString s = QString::number(a, 10);             // s == "63" , 转成10进制 
QString t = QString::number(a, 16).toUpper();     // t == "3F" , 转16进制 

Tony Liu

2016-9-24, Shenzhen