【Halcon和C++数据之间的转换(HTuple、double、QString等)】


在这里插入图片描述

一、HTuple→VC 数据类型转换:

//HTuple转int
HTuple hTuple = 1;
int str1 =  hTuple[0].I();         // str1 = 1
            
//HTuple转double   常用
HTuple hTuple = 1.1;
double str2 = hTuple[0].D();       // str2 = 1.1

//HTuple转CString
HTuple hTuple = "cstring";
CString str3 = hTuple[0].S();      // str3 = "cstring"

二、VC→HTuple 数据类型转换:

HTuple和int、double、CString、QString之间的数据转换

int str1 = 1;
double str2 = 1.1;
CString str3 = "CString";
QString str4 = "QString";
    
HTuple hTuple2;
hTuple2[0] = str1;                        // hTuple2[0].I() = 1
hTuple2[1] = str2;                        // hTuple2[1].D() = 1.1
hTuple2[2] = str3.GetBuffer();            // hTuple2[2].S() = "CString"
hTuple2[3] = str4.toStdString().c_str();  // hTuple2[3].S() = "QString"
    
int i = hTuple2[0].I();                   // i=1
double d = hTuple2[1].D();                // d=1.1
CString cstring = hTuple2[2].S();         // cstring = "CString"
QString qstring = hTuple2[3].S();         // qstring = "QString"

三、double→QString数据类型转换:

① 直接转换

double m1 = 66.123456;
QString str1 = QString::number(m2);  

② .arg的方式保留3位小数则写法如下:

double m2 = 66.123456;
QString str2 = QString("%1").arg(m2, 0, 'f', 3);    //3是保留三位小数
qDebug()<<str2;

输出结果为:66.123

③ 如果想控制整数加小数在总位数,则写法如下:

double m3 = 66.123456;
QString str3 = QString("%1").arg(m3, 0, 'g', 6);    //6是保留总位数
qDebug()<<str3;

输出结果为:66.1235

四、QString数据类型中文乱码解决:

//QString类型的中文需要做如下转换
QString::fromStdWString(L"中文")
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【网络星空】

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值