当前位置: 首页 > news >正文

qt数据类型定义(包含签名)

先推荐一个处理markdown表格的网站,超级好用:markdown表格处理,我就是用这个表格处理的excel中的数据上传。

下表整理了数据类型的值范围、签名、qt如何定义等内容。

类型范围/子类型dbus签名qt支持的签名qt类型定义方式转换为variant
int8(c)-128~127yyquint8/uchar
uint80~255yyquint8/uchar
int16-32768~32767nnqint16/shortQVariant::fromValue(arg)
uint160~65535qqquint16/ushortQVariant::fromValue(arg)
int32-2147483648~2147483647iiqint32/int
uint320~4294967295uuquint32/uint
int64-9223372036854775808~9223372036854775807xxqint64/qlonglong
uint640~18446744073709551615ttquint64/qulonglong
float32(f)-3.4E38 -1~+3.4E38+1dddouble
float64-1.79E+308 ~ +1.79E+308dddouble
boolbbbool
stringssQString
void
arrayacayayQByteArray data;QVariantMap data;
QList<uint> auint;
auint.append(0);
data["arg"] = QVariant::fromValue(auint);

QVariant vrt;
vrt.setValue<QVariantMap>(data);
ayayayQByteArray
anananQList<short>
aqaqaqQList<ushort>
aiaiaiQList<int>
auauauQList<uint>
axaxaxQList<qlonglong>
atatatQList<qulonglong>
afadadQList<double>
adadadQList<double>
abababQList<bool>
asasasQStringList
variantvvQVariant
mapa{sy}a{sy}a{sy}QMap<QString, uchar>map转variant: QMap<QString, QVariant> data;
data.insert("key1", 1);
data.insert("key2", "2a");
data.insert("key3", 3.23);
data.insert("中文key", false);
// QVariant datav = QVariant::fromValue(data);

QMap<QString, QMap<QString, QVariant>> data1;
data1.insert("key", data);
QVariant vrt = QVariant::fromValue(data1);
a{sn}a{sn}a{sn}QMap<QString, short>
a{sq}a{sq}a{sq}QMap<QString, ushort>
a{si}a{si}a{si}QMap<QString, int>
a{su}a{su}a{su}QMap<QString, uint>
a{sx}a{sx}a{sx}QMap<QString, qlonglong>
a{st}a{st}a{st}QMap<QString, qulonglong>
a{ss}a{ss}a{ss}QMap<QString, QString>
a{sd}a{sd}a{sd}QMap<QString, double>
a{sb}a{sb}a{sb}QMap<QString, bool>
a{sa}a{sa}a{sa}QMap<QString, QStringList>
a{sv}a{sv}a{sv}QMap<QString, QVariant>
a{sa{sv}}a{sa{sv}}a{sa{sv}}QMap<QString, QMap<QString, QVariant>>
a{yv}、a{nv}...a{dv}a{yv}不支持/这种场景的构造可以使用d-feet或用gdbus
a{bv}、a{av}没有这种以bool或数组作为key值

数据说明:
1、qt不支持int8,只支持quint8或uchar,默认范围是0-255。如果qt定义此范围外的数据,会自动转换,比如-1会转成255,256会转成0。
2、qt不支持uint8的数组,只支持QByteArray,默认范围是-128-127。如果是此范围外的数据,qt会自动转换,比如255会转成-1, 250会转成-6。但是dbus支持的范围是0-255,所以-1或者-6到dbus后,又会被转为255或250。

备注:
1、QVariantMap定义的、不管是几层嵌套,其实签名都是a{sv}–[map[string]dbus.Variant] 。
2、QVariantMap相当于QMap<QString, QVariant>。

http://www.lryc.cn/news/500212.html

相关文章:

  • docker逃逸总结
  • MySql:表的操作
  • LVGL9 开关控件 (lv_switch) 使用指南
  • fastadmin 登录退出忽略中间提示页面
  • 游戏引擎学习第36天
  • 准确率99.9%的离线IP地址定位库 ip2region - python 示例
  • wordpress网站使用Linux宝塔面板和SQL命令行导入导出超过50M限制的数据库
  • 开发基础(3):开发应用沉浸式效果 组件安全区方案
  • Python中的数据可视化实战
  • 计算机毕设-基于springboot的甜品店管理系统的设计与实现(附源码+lw+ppt+开题报告)
  • SpringMVC纯注解快速开发
  • 【JAVA】Java高级:多数据源管理与Sharding:在Spring Boot应用中实现多数据源的管理
  • 汽车网络安全 -- IDPS如何帮助OEM保证车辆全生命周期的信息安全
  • 黑马点评项目测试总结
  • 【Selenium】基于 WebDriverWait 爬取带有懒加载的静态页面
  • 【docker】docker compose 和 docker swarm
  • Javaweb 前端 ajax
  • 【蓝桥杯每日一题】重新排序
  • 《深入浅出HTTPS》读书笔记(16):消息验证码算法分类
  • 如何使用Apache HttpClient来执行GET、POST、PUT和DELETE请求
  • 数据结构-希尔排序
  • Spire.doc 合并word,复制word
  • 【Spring项目】表白墙,留言板项目的实现
  • 分布式事务-nacos/seata在windows环境下部署及开发
  • 分布式微服务架构下的密码安全性方案
  • 基于pytorch的深度学习基础4——损失函数和优化器
  • 网络安全信息收集(总结)更新
  • web斗地主游戏实现指北
  • SpringMVC其他扩展
  • 【Linux】网络服务