我有一个QByteArray
,我要提取一个十六进制数字,我想将其分解为单个位。完成此操作后,我想对特定位进行位测试,以检查其是否正确以发送消息。
这是我现在拥有的代码:
if(ID == 65290) {
QBitArray a(Data_0,16);
QString z = QString::number(Data_0,2);
a.testBit(0) = b;
if(b == true) {
ui->Test->setText(z);
m_workerThread->sendMsg(418381594,1,0,0,0,0,0,0,0);
} else {
m_workerThread->sendMsg(418381594,0,0,0,0,0,0,0,0);
ui->Test->setText(z);
}
}
这不会编译,因为我确定我没有正确使用testBit。 QString就是这样,当我将其转换为二进制时,我可以看到它。 Data_0正在其他地方接收。
我是编程的新手,所以将不胜感激。
谢谢。
最佳答案
我不是Qt专家,但是您似乎正在尝试为函数调用分配值。
请尝试b = a.testBit(0)
。
问题:您正在通过未知的构造函数创建实例。
编译器是否抱怨第一行?