jjzjj

QByteArray

全部标签

javascript - QByteArray 在 QML 中被转换成什么?

如果我有一个signal:voidfoo(QByteArraydata);我在QML中处理它:onFoo:{console.log(data.toString());}QML中的数据类型是什么?它有哪些方法?它似乎不是javascript字符串-它甚至没有.length,也没有.charCodeAt()。但它似乎也不是QByteArray-不是.at()。data[0]是undefined!它确实有.toString()。如何访问其内容?例如。如果它是一个四字节的uint32_t,我如何将该数字放入javascript变量中? 最佳答案

javascript - QByteArray 通过 QWebChannel 在 Javascript 中被视为字符串

使用QWebChannel从QtWebKit迁移到QtWebEngine。我有一个可调用函数,它向Javascript发送一个QVariant对象,它被视为一个JSON对象。所以QString变成了string,QInt变成了int,等等。在没有QWebChannel的情况下使用QtWebKit,QByteArray被视为Uint8ClampedArray,但现在使用UTF-8直接转换为string(我的QByteArray不是:()我做错了什么吗?我该怎么办?相关代码部分如下://QtWindowclasssignaltojavascriptvoidMyWindow::uplink(

c++ - 确保 QByteArray 拥有它的内存 (QByteArray::fromRawData)

假设我们有一个功能商店voidstore(constQByteArray&data);此函数的工作是获取数据并将其存储起来。不幸的是,如果参数是用QByteArray::fromRawData(ptr,size)创建的,那么这样做是不安全的,因为它及其所有拷贝都要求ptr保持有效.因此store无法禁止其调用者传入这样的数组,将data视为constchar*在类固醇上或使用detach强制深度复制。所有这些都不令人满意,尤其是后者会损害性能,因为如果data在传递到store之前被COW复制,我们将进行不必要的深度复制。QByteArray有一个private函数nulTermina

c++ - 在调试过程中如何查看 Qt 对象 QByteArray 的内容?

我的程序使用一些QByteArray类型的变量来包含数据(字节)。这些字节可能是特殊字符,如'\0'、1、...所以我在调试时看不到特殊字符后的所有元素。如果我使用std::vector,我可以看到所有元素。我必须使用QByteArray但在调试时我看不到这个变量的所有元素。请帮助我!谢谢!例子:QByteArraybytes(4,'\0');现在,如果调试,我只看到“”。但我想看到“'\0'、'\0'、'\0'、'\0'”或类似这样的内容。我对QDateTime也有同样的问题。但我通过这个帮助解决了:http://www.qtcentre.org/threads/32336-View

c++ - 如何简单地序列化复杂结构并在 Qt 中通过网络发送它们

我正在创建一个客户端服务器应用程序,现在我正在处理一种最简单的方法来序列化一些类,交付给另一端,然后放回我以后可以使用的类。我意识到这并不简单,有些人可能会说用C或C++等低级语言是不可能的,但实际上可以通过大量编码实现。我想知道是否其他人已经没有为此创建一个解决方案,它是可移植的并且可以工作,所以我不需要重新发明轮子。目前我的解决方案(可能有点太复杂):每个要序列化和反序列化的类都继承自抽象类Serializable,它包含两个函数:QHashToHash();voidLoadHash(QHashhash);第一个函数创建一个包含所有公共(public)和私有(private)变量的

c++ - 避免/检测对导出文件的操纵

我正在开发C++Qt应用程序。为了在应用程序或其连接的设备出现故障时帮助用户,程序导出所有内部设置并将它们存储在一个普通文件(目前为csv)中。然后将此文件发送到公司(例如通过邮件)。为避免对导出的设置进行不经意的操作(例如,导出后由用户手动操作),我需要某种机制来检测这一点。方法应该尽可能简单,因为这不是一个非常关键的信息,但仍然有效。我能想到的就是散列或加密,但我很确定已经有一个简单而优雅的解决方案可用于此。 最佳答案 您可以使用多种摘要或加密签名方案中的一种。由于这必须脱机工作,因此您的可执行文件必须包含一个secret-无论

c++ - 从 QByteArray 解析 Qt5 JSON

我有QByteArray,包含这个JSON{"response":{"count":2,"items":[{"name":"somename","key":1"},{"name":"somename","key":1"}]}}需要解析并获取需要的数据:QJsonDocumentitemDoc=QJsonDocument::fromJson(answer);QJsonObjectitemObject=itemDoc.object();qDebug()第一次调试显示所有QByteArray的内容,记录在itemObject中,第二次调试不显示任何内容。我必须以其他方式解析它,或者为什么这个

c++ - Qt QString 到 QByteArray 并返回

我在从QString到QByteArray再回到QString的转换中遇到问题:intmain(){QStrings;for(inti=0;i如您所见,我用16位范围内的所有字符填充QString。然后将它们转换为QByteArray(Utf8)并返回到QString。问题是值为0的字符和值大于55295的字符无法转换回QString。如果我保持在1到 最佳答案 我的任务是将std::string转换为QString,并将QString转换为QByteArray。以下是我为完成此任务所做的工作。std::stringstr="hel

c++ - 从 QByteArray 转换为 double 组

我有一个double的数组:QVectorY(count);我需要打包到QByteArray通过以太网发送。所以我做到了。这并不难:QByteArrayline;line.clear();line.append(QByteArray::fromRawData(reinterpret_cast(Y.data()),count*sizeof(double)));我尝试使用此代码解压来自QByteArrayrecv的数据:QVectordata((line.size())/sizeof(double));QByteArraydou(sizeof(double),0x0);for(inti=0

c++ - 将 unsigned char[10] 转换为 QBytearray;

我已经看到很多关于此的问题,但到目前为止没有一个对我有用。我已经尝试了2个最常见的答案,但我得到了同样的错误。只是一个unsignedcharbuf[10];这个,QByteArraydatabuf;databuf=QByteArray::fromRawData(buf,10);或者这个,QByteArraydatabuf;databuf=QByteArray(buf,10);我遇到了同样的错误,错误:从“unsignedchar*”到“constchar*”的无效转换[-fpermissive]有什么建议吗?谢谢 最佳答案 这只是