QByteArray最好用中间变量存储临时变量
来源:互联网 发布:小程序请求服务器数据 编辑:程序博客网 时间:2024/06/03 11:54
最近Qt编程实践中,发现QByteArray的不可预料问题,不知道为啥。编程实践是:我用QClipBoard存储自定义结构体数据,实现进程间的数据传输。开始我是这么写代码的:
从QClipBoard读取自定义结构体数据的过程是:获取mimeData指针md--》获取指针md的data域ba,是QByteArray对象--》用ba初始化QDataStream流in--》用流in写入QVariant,最后QVariant调用value方法获取自定义的结构体值。
这个写法,把QByteArray对象作为了临时变量,在一个进程内部执行时,没有错误。但在跨进程执行时,获取到的自定义结构体值是空的。不知道为何。网上也没有人讲这个问题。不过,我在调试时,将中间变量都单独用变量表示了,意外地解决了这个问题。这么写:
用单独的变量转储QByteArray中间变量值,进程间的通信,自动地解决了,可以从剪切板获取到数据。虽然不知道所以然,但知其然也不错耶。
这个小问题,开始我百度没找到解决方法,窃以为可以作为原创写下来,顺便作为后续笔记查看复习。
此外,在QString转char*时,最好写个函数,用中间变量转储QString.data()得到的QByteArray对象,直接使用临时变量可能会在某些场景下有意外的错误。
以上涉及到的剪切板实现进程间通信,网上都查得到,就不多写了。
阅读全文
0 0
- QByteArray最好用中间变量存储临时变量
- MemCacheHelper存储临时变量
- 交换两个变量的值----两种方法(1)通过中间临时变量(2)不通过中间临时变量
- 临时变量
- 临时变量
- 触发器、存储过程、表变量、临时表
- java 实现两个变量的互换(不借助第三个变量,即中间变量、临时变量)
- 无临时变量交换变量
- python 递归时存储中间变量要用copy 方法,否则出栈就废了
- Tenosrflow的可视化和中间变量的存储与恢复
- MySQL标准变量、临时变量、系统变量
- 中间缓存变量机制
- Modelsim查看中间变量
- 中间缓存变量机制
- 中间缓存变量机制
- 中间变量缓存机制
- 临时变量也可以存储在数据段
- Mysql 存储过程、临时变量定义、IF、Case
- java中File类的使用方法
- MyBatis Generator(MBG)DB2使用说明 LONG VARCHAR 字段
- Linux_CGI_CGIC
- Gradle2.0用户指南翻译——第四章. 安装Gradle
- linux目录权限继承问题
- QByteArray最好用中间变量存储临时变量
- WOJ1225-Catch That Cow
- CSDN-markdown编辑器使用帮助文档
- 拥有AES-XTS 256位硬加密和秘钥删除,企业数据安全性会怎样?
- sql优化小策略
- Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence
- SQL语句之DDL、DML、DCL、TCL四种语言
- Java File文件操作
- 【学习摘记】马士兵JDBC技术_课时14_JDBC处理可滚动的结果集