Qt中的DataPtr用于什么?
Qt中的DataPtr用于什么?,qt,Qt,QVariant::DataPtr是私有的,昨天我用QBitArray做了一些工作。有一个函数data\u ptr()返回DataPtr&,但我不知道何时以及如何使用这个函数。我将返回的数据写入一个文件,并在ST2中打开它,显示一个SOH: int main() { QBitArray bit(8); bit[5] = true; //--> I tried bit[7] = true; result is `SOH` still QFile file("out")
QVariant::DataPtr
是私有的,昨天我用QBitArray
做了一些工作。有一个函数data\u ptr()
返回DataPtr&
,但我不知道何时以及如何使用这个函数。我将返回的数据写入一个文件,并在ST2中打开它,显示一个SOH
:
int main()
{
QBitArray bit(8);
bit[5] = true; //--> I tried bit[7] = true; result is `SOH` still
QFile file("out");
file.open(QIODevice::WriteOnly);
QDataStream outs(&file);
outs << bit.data_ptr();
file.close();
return 0;
}
intmain()
{
qbit阵列位(8);
位[5]=true;//-->我尝试了位[7]=true;结果仍然是'SOH'
QFile文件(“out”);
打开(QIODevice::WriteOnly);
qdata数据流输出(文件(&F);
outs只是一个指向结构的指针。该结构是私有的,因此您不应该使用它做任何事情。但是,您可以使用指向它的指针来区分两字节数组。use QBitArray::operatordata\u ptr
是指向data
的指针。例如,您可以使用data\u ptr
将QBitArray转换为char*:
auto data = bit.data_ptr()->data();
因此,数据[0]
是位的大小(这里是8),其他是位的值。例如:
QBitArray bit(16);
bit[5] = true;
bit[14] = true;
auto data = bit.data_ptr()->data();
位的值是0x4020。因此,data[0]
是16,data[1]
是0x20,data[2]
是0x40。你的问题是关于QVariant或qbitary?在文档中找不到data_ptr(),投票结束…@UmNyobe我问的是关于data_ptr()
,我只想知道它返回值的含义,它是一个QVariant::DataPtr
…它是私有的。你为什么想知道私有成员的含义?它不是你想要使用的,我不知道你为什么想知道何时使用它。如果你仍然坚持,那么就转到你想要的类的源代码,并阅读它它是如何使用的。