Chinaunix首页 | 论坛 | 博客

apt

  • 博客访问: 381065
  • 博文数量: 121
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-10 15:52
文章分类

全部博文(121)

文章存档

2017年(2)

2016年(23)

2015年(96)

我的朋友

分类: C/C++

2015-05-28 10:21:35

1.QStringchar *

先将QString转换为QByteArray,再将QByteArray转换为char *
比如:

点击(此处)折叠或打开

  1. Qstring str;

  2. char* ch;

  3. QByteArray ba = str.toLatin1();

  4. ch=ba.data();
注意:这里的 QByteArray ba = str.toLatin1(); 最好不要省略,否则可能会报错。因为如果直接写为 char *mm = str.toLatin().date(); str.toLatin1()得到的QByteArray类结果就不能保存,最后转换的mm的值就为空,程序就会报错。
2. char * QString

char *转化为QString 比较简单,可以直接用

点击(此处)折叠或打开

  1. QString str,
  2. char * ch;
  3. ........ //对ch的处理
  4. QString str= QString(QByteArray(ch));

3. QString转数字

Qt中QString转数字比较简单,可以直接用str.toInt()、str.toDouble等。

4.char 类型

char类型是字节类型,共有8位,如果想要获取每一位,可以使用循环将每位得到。

点击(此处)折叠或打开

  1. char sta1;
  2. int nbit[8];

  3. ..................//让sta1获取值

  4. for(int i=0;i<8;i++)
  5. {
  6.   nbit[i] = (sta1 >> i)&0x01;
  7.   qDebug()<<"nbit-"<<i<<"-"<<nbit[i];
  8. }

5、int转化为char

int转化为char,使用sprintf函数转化即可

点击(此处)折叠或打开

  1. BYTE test[5]={200,56,158,48,55};
  2.     char test1[3];
  3.     for(int ii =0;ii<5;ii++)
  4.     {

  5.         sprintf(test1,"%d",test[ii]);
  6.         qDebug()<<"test1"<<test1;

  7.     }

6、int转化为QString

有两种方法
1.使用QString QString::number ( long n, int base = 10 ) [static]

    如:long a = 63; QString s = QString::number(a, 10); // s == "63"
    
QString t = QString::number(a, 16).toUpper(); // t == "3F"
2.使用long a = 63; QString s = QString("%1").arg(a);

    推荐第1种用法











阅读(1347) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~