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


目录
相关文章
|
7月前
|
存储 Serverless 数据安全/隐私保护
C++ 类的成员函数和数据成员的技术性探讨
C++ 类的成员函数和数据成员的技术性探讨
93 0
|
4月前
|
存储 C++
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
106 1
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
|
4月前
|
存储 算法 C++
C++ STL应用宝典:高效处理数据的艺术与实战技巧大揭秘!
【8月更文挑战第22天】C++ STL(标准模板库)是一组高效的数据结构与算法集合,极大提升编程效率与代码可读性。它包括容器、迭代器、算法等组件。例如,统计文本中单词频率可用`std::map`和`std::ifstream`实现;对数据排序及找极值则可通过`std::vector`结合`std::sort`、`std::min/max_element`完成;而快速查找字符串则适合使用`std::set`配合其内置的`find`方法。这些示例展示了STL的强大功能,有助于编写简洁高效的代码。
57 2
|
4月前
|
编译器 C++
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
|
4月前
|
存储 数据挖掘 C语言
【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】
【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】
|
4月前
|
存储 安全 数据处理
【C++】C++ 超市会员卡管理系统(面向对象)(源码+数据)【独一无二】
【C++】C++ 超市会员卡管理系统(面向对象)(源码+数据)【独一无二】
110 1
|
5月前
|
存储 C++ 容器
开发与运维数组问题之C++标准库中提供数据容器作为数组的替代如何解决
开发与运维数组问题之C++标准库中提供数据容器作为数组的替代如何解决
64 5
|
5月前
|
设计模式 监控 Go
开发与运维C++问题之C++部分原有的数据发送能力如何解决
开发与运维C++问题之C++部分原有的数据发送能力如何解决
27 1
|
5月前
|
存储 数据格式 运维
开发与运维C++问题之更改数据模型为通用数据结构如何解决
开发与运维C++问题之更改数据模型为通用数据结构如何解决
32 1
|
4月前
|
存储 算法 C++
【C/C++】C/C++ KTV点歌系统设计与实现(源码+数据+报告)【独一无二】
【C/C++】C/C++ KTV点歌系统设计与实现(源码+数据+报告)【独一无二】