Qt中常用类型转换
QString qsTmp;
string sTmp;
int iTmp;
1. QString To Int
iTmp = qsTmp.toInt();
2. Int To QString
qsTmp = QString::number(iTmp);
3. QString To char *【中文】
QByteArray qbBuffArray = QString().toLocal8bit();
char *pcStr = abBuffArray.data();
【注意】不能直接使用 这样获取到的字符串是错误的
char *pcStr = QString().toLocal8bit().data();
QByteArray qbBuffArray = QString().toUtf8();
char *pcStr = abBuffArray.data();
同时获取要发送字符串的长度时要使用 strlen(pcStr); sizeof(pcStr)函数不正确
4. QString To char *
char *pcStr = QString().toStdString().c_str();
5. char * To QString
char *pcTmp = "123456";
QSting qsTmp(pcTmp);
6. QString To Hex【单个数字】
bool ok;
iTmp = qsTmp.toInt(&ok, 16);
7. QString To Hex【串】
// 类中全局字符数组
char acStrToHexBuff[65536];
void MainWindow::printf_hex(char *pcBuff, int iBuffLen)
{
int k1, iOffset;
k1 = iOffset = 0;
if((3 * iBuffLen + (iBuffLen - 1) / 16) > 65536)
{
qDebug() << "预置字符串长度溢出";
return ;
}
memset(acStrToHexBuff, 0x00, sizeof(acStrToHexBuff));
for(k1 = 0; k1 < iBuffLen; k1++)
{
if(k1 && (k1 % 16 == 0))
{
puts(""); // 换行输出
sprintf(acStrToHexBuff + iOffset, "\n");
iOffset += 1;
}
printf("%02x ", pcBuff[k1]); // 十六进制打印输出
sprintf(acStrToHexBuff + iOffset, "%02x ", pcBuff[k1]);
iOffset += 3;
}
put(""); // 换行输出
return ;
}