首页 > 其他分享 >Qt 常用数据类型转换

Qt 常用数据类型转换

时间:2024-03-11 19:33:06浏览次数:18  
标签:类型转换 常用 QByteArray Qt quint16 char QString qDebug quint8

1、int转QString

quint8转QString

1 quint8 k = 77;
2 QString str_1;
3 str_1 = QString::number(k, 10);
4 qDebug() << str_1;      // "77"
5 QString str_2 = QString("%1").arg(k);
6 qDebug() << str_2;      // "77"

2、quint8转QByteArray

1 QByteArray all;
2 quint8 head = 0XFF;
3 all.append(head);
4 qDebug() << all;    //"\xFF"

3、quint8转QByteArray再转quint8

 1 QByteArray all;
 2 quint8 head = 65;
 3 all.append(head);
 4 qDebug() << all;    //"A" // 可以看出是ascii码的值,65对应A
 5 QByteArray temp = all.mid(0, 1);
 6 qDebug() << temp;   //"A"
 7 char* data = temp.data();
 8 qDebug() << data;   //A
 9 quint8 i = (quint8) data[0];
10 qDebug() << i;      //65

4、QByteArray转char*

1 QByteArray b("123");
2 qDebug() << b;      //"123"
3 char* d = b.data();
4 qDebug() << d;      //123

5、quint8转QByteArray(感觉QByteArray.toInt()等方法很不好用。。)

1 quint8 q = 65;
2 QByteArray b;
3 b.setNum(q, 10);
4 qDebug() << b;  //"65"
5 qDebug() << "int:" << b.toInt() << " hex:" << b.toHex();    //int: 65  hex: "3635" 
6 // int转成功了,但是hex...额,没有看懂

6、QString转char*

1 QString str("123");
2 std::string temp = str.toStdString();
3 const char* constChar = temp.c_str();
4 char* result = new char[strlen(constChar) + 1];
5 strcpy(result, constChar);
6 qDebug() << result;     //123

7、quint16转char*

1 quint16 code = 9299;
2 char buff[3];
3 memcpy(buff,&code,sizeof(quint16));
4 qDebug() << buff;   //S$

8、char*转quint16

1 // buff为上一点中的数据
2 quint16 res = *((quint16*)buff);
3 qDebug() << res; //9299

9、quint16转QByteArray再转quint16

 1 QByteArray q;
 2 quint16 code = 9299;
 3 char buff[3];
 4 memcpy(buff,&code,sizeof(quint16));//quint16转char*
 5 qDebug() << buff;   //S$
 6  
 7 q.append(buff);     //char*转为QByteArray
 8 char *temp = q.data();  // QByteArray转char*
 9 quint16 res = *((quint16*)temp);// char*转quint16
10 qDebug() << "size:" << q.length() << " byte:" << q << " res:" << res;//size: 2  byte: "S$"  res: 9299

 

标签:类型转换,常用,QByteArray,Qt,quint16,char,QString,qDebug,quint8
From: https://www.cnblogs.com/ybqjymy/p/18066884

相关文章

  • Linux查看文件内容常用命令
    前言在Linux系统中,查看文件内容是进行系统管理和日常操作的基本技能之一。通过一些简单而有效的命令,您可以快速浏览文件的内容,检查配置文件、日志文件等。本文将介绍几个常用的Linux命令,帮助您轻松地查看文件内容。查看文件类型1、file命令:filefile_name查看文本内容查看......
  • Linux常用统计命令大全
    简介Linux系统作为一种常用的操作系统,具有丰富的命令行工具,其中包括了许多用于统计数据的命令。这些命令可以帮助系统管理员和开发人员轻松地分析和处理数据。本文将介绍一些常用的Linux统计命令,帮助读者更好地理解和使用它们。grepgrep命令用于在文本文件中搜索指定模式的文......
  • Qt 自定义控件
    参考:https://blog.csdn.net/danshiming/article/details/134383612https://blog.csdn.net/u011832219/article/details/128531359 1、创建自定义控件新建qt项目(项目1),选择其他项目中的“Qt设计师自定义控件”,构建套件的版本类型需要与'帮助'列表中'AboutQtCreator'弹窗的......
  • redis常用命令
    1、启动Redis>redis-server[--port6379]如果命令参数过多,建议通过配置文件来启动Redis。>redis-server[xx/xx/redis.conf]6379是Redis默认端口号。2、连接Redis>./redis-cli[-h127.0.0.1-p6379]3、停止Redis>redis-clishutdown >killredis-pid以上......
  • isaac sim 常用记录
    目录常用函数常用demotask类controller类结合写好的task和cotroller常用函数添加usd资产prim_path='/World/warehouse'usd_path='/home/linhai/app/isaac/Collected_warehouse_with_forklifts/warehouse_with_forklifts.usd'stage_utils.add_ref......
  • SqlServer常用监控查询语句
    --查询SqlServer总体的内存使用情况selecttype,sum(virtual_memory_reserved_kb)VM_Reserved,sum(virtual_memory_committed_kb)VM_Commited,sum(awe_allocated_kb)AWE_Allocated,sum(shared_memory_reserved_kb)Shared_Res......
  • 如何在Qt的 paintEvent之外进行绘制
    QPainter默认只能在paintEvent中进行绘制这在有些情况下会很不方便,有时候我们希望可以在任意地方直接进行绘制 为了实现这个目的,可以采用以下方法:继承QWidget,通过子类提供直接绘制的方法,并将所有绘制保存到中间的QPixmap最后在重载的paintEvent中将QPixmap复制显示:#prag......
  • QT 多线程
     第一种:静态函数1voidprint()2{3for(inti=0;i<5;i++)4qInfo()<<"helloglobalprint";5}6classMainWindow:publicQWidget7{8Q_OBJECT9public:10MainWindow(QWidget*parent=nullptr):QWidget(parent)......
  • QT信号与槽机制与事件机制的区别
    QT信号与槽机制与事件机制的区别第一:什么是信号与槽?事件?所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,用自己的一......
  • JS正则常用校验
    手机号(mobilephone)中国(严谨),根据工信部2019年最新公布的手机号段1constreg=/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/;2conststr="19119255642";3console.log(`校验${reg.test(str)?......