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

简介: [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 数据类型转换:HTupleintdoubleCStringQString之间的数据转换

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"中文")


目录
相关文章
|
2月前
|
存储 前端开发 Java
【C++ 多线程 】C++并发编程:精细控制数据打印顺序的策略
【C++ 多线程 】C++并发编程:精细控制数据打印顺序的策略
48 1
|
2月前
|
存储 安全 算法
【C/C++ 数据发送结构设计】C++中的高效数据发送:多态、类型擦除与更多解决方案
【C/C++ 数据发送结构设计】C++中的高效数据发送:多态、类型擦除与更多解决方案
79 0
|
4月前
|
存储 数据管理 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机本身的数据保存(CustomData)功能(C++)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机本身的数据保存(CustomData)功能(C++)
48 0
|
17天前
|
C++
C++ 访问说明符详解:封装数据,控制访问,提升安全性
C++ 中的访问说明符(public, private, protected)用于控制类成员的可访问性,实现封装,增强数据安全性。public 成员在任何地方都可访问,private 只能在类内部访问,protected 则允许在类及其派生类中访问。封装提供数据安全性、代码维护性和可重用性,通过 setter/getter 方法控制对私有数据的访问。关注公众号 `Let us Coding` 获取更多内容。
26 1
|
1月前
|
NoSQL C++
c++中包含string成员的结构体拷贝导致的double free问题
c++中包含string成员的结构体拷贝导致的double free问题
9 0
|
2月前
|
安全 搜索推荐 Linux
Linux C++ 环境下数据高效备份策略:全面指南与最佳实践
Linux C++ 环境下数据高效备份策略:全面指南与最佳实践
37 1
|
2月前
|
存储 机器学习/深度学习 算法
【C/C++ 查找算法】深入探索数据查找算法:原理、数学模型与C/C++实现
【C/C++ 查找算法】深入探索数据查找算法:原理、数学模型与C/C++实现
56 0
|
2月前
|
存储 缓存 安全
【C/C++ 关键字 存储类说明符】C/C++ 的mutable 关键字 忽略对该数据成员的常量性检查在const函数中修改变量值
【C/C++ 关键字 存储类说明符】C/C++ 的mutable 关键字 忽略对该数据成员的常量性检查在const函数中修改变量值
29 0
|
2月前
|
JSON 并行计算 API
使用CJSON/Nlohmann:快速简便地在C/C++中处理JSON数据
使用CJSON/Nlohmann:快速简便地在C/C++中处理JSON数据
241 0
|
2月前
|
C++
C++ 数据封装的方法,重点是其编程思想
在C++中,数据封装一般指的是将数据和操作这些数据的函数绑定在一起的程序设计方式。通常使用C++的类来实现
37 7