QByteArray baEachAQQ=baAQQ.mid(i*24,24); qDebug()<<"baEachAQQ"<<baEachAQQ.toHex().data(); for(int j=0;j<4;j++) { QByteArray baAQQx1=baEachAQQ.mid(j*6,3); baAQQx1=ba3toba3(baAQQx1); QString strAQQ1x=baAQQx1.toHex().data(); qint64 AQQ1x=strAQQ1x.toLongLong(&ok,16); double douAQQ1x=AQQ1x; double numAQQ1x=douAQQ1x/3600; qDebug()<<"AQQp1x"<<baAQQx1.toHex().data()<<AQQ1x<<numAQQ1x; QByteArray baAQQy1=baEachAQQ.mid(j*6+3,3); baAQQy1=ba3toba3(baAQQy1); QString strAQQ1y=baAQQy1.toHex().data(); qint64 AQQ1y=strAQQ1y.toLongLong(&ok,16); double douAQQ1y=AQQ1y; double numAQQ1y=douAQQ1y/3600; qDebug()<<"AQQp1y"<<baAQQy1.toHex().data()<<AQQ1y<<numAQQ1y; AQQpoints1<<QPointF(numAQQ1x,numAQQ1y); } QGraphicsPolygonItem* AQQ = new QGraphicsPolygonItem(AQQpoints1); AQQ->setPen(pen); // 设置画笔颜色 scene->addItem(AQQ);为什么AQQ画不出来
时间: 2024-02-14 10:10:34 浏览: 140
可能是以下几个原因导致AQQ无法画出来:
1. QGraphicsView没有设置场景(scene),可以在构造函数中添加以下代码:
```
QGraphicsView *view = new QGraphicsView(this);
QGraphicsScene *scene = new QGraphicsScene(this);
view->setScene(scene);
```
2. AQQpoints1中没有足够的点,导致无法构成多边形。可以在循环前打印出baEachAQQ的值,检查是否正确。
3. AQQpoints1构成的多边形区域太小,无法显示在GraphicsView中。可以尝试调整多边形的位置或大小,或者放大GraphicsView的显示区域。
希望以上提示对你有所帮助,如果问题依然存在,可以提供更多细节信息,方便进一步排查。
相关问题
QByteArray ba3; ba3.resize(3); QByteArray ba4; ba4.resize(3); QByteArray baAQQ1x=ba111.mid(j*6,3);//1 ba3[0]=baAQQ1x[2]; ba3[1]=baAQQ1x[1]; ba3[2]=baAQQ1x[0]; QString strAQQ1x=ba3.toHex().data(); qint64 AQQ1x=strAQQ1x.toLongLong(&ok,16); double douAQQ1x=AQQ1x; double numAQQ1x=douAQQ1x/3600; qDebug()<<"AQQp1x"<<baAQQ1x.toHex().data()<<AQQ1x<<numAQQ1x; QByteArray baAQQ1y=ba111.mid(j*6+3,3);//2 ba4[0]=baAQQ1y[2]; ba4[1]=baAQQ1y[1]; ba4[2]=baAQQ1y[0]; QString strAQQ1y=ba4.toHex().data(); qint64 AQQ1y=strAQQ1y.toLongLong(&ok,16); double douAQQ1y=AQQ1y; double numAQQ1y=douAQQ1y/3600; qDebug()<<"AQQp1y"<<baAQQ1y.toHex().data()<<AQQ1y<<numAQQ1y; AQQpoints1<<QPointF(numAQQ1x,numAQQ1y);这段代码为什么会导致scene图像无法添加
这段代码并不是很完整,缺少了一些必要的上下文信息,无法准确判断导致问题的原因。但是根据代码中的变量名和注释来看,这段代码可能是将一个字节数组`ba111`中的数据按照一定规则转换成了一组`QPointF`类型的坐标点,并将这些坐标点添加到了一个名为`AQQpoints1`的`QList`中。
如果这段代码导致scene图像无法添加,可能是由于在这段代码执行之前或之后,存在了其他代码对场景(scene)进行了修改,导致了场景状态的不一致或错误,进而导致了无法添加图像。或者是由于这段代码中转换坐标点的逻辑存在问题,导致了转换出的坐标点不符合预期,进而导致了无法添加图像。
需要进一步分析代码并检查上下文信息才能确定问题的原因。建议在代码中添加适当的调试信息和错误处理逻辑,以便更好地定位问题。
QByteArray output = process.readAllStandardOutput(); qDebug() << output;如何提取output中倒数第六个字符
要提取`output`中倒数第六个字符,您可以使用以下代码:
```c++
QByteArray output = process.readAllStandardOutput();
if (output.size() >= 6) {
char sixthFromEnd = output.at(output.size() - 6);
qDebug() << "Sixth from end: " << sixthFromEnd;
} else {
qDebug() << "Output is not long enough to extract sixth from end.";
}
```
首先,使用`readAllStandardOutput()`函数读取进程的标准输出,并将结果存储在`output`变量中。然后,使用`at()`函数提取`output`中倒数第六个字符,并将其存储在`sixthFromEnd`变量中。
请注意,如果`output`的大小小于6,则不能提取倒数第六个字符。因此,上面的代码包含了一个简单的检查来确保`output`的大小足够。
阅读全文