一 QCPItemText文本的添加和删除
- 添加文本,通过下属代码向QCustomPlot对象中的setCoords设定的位置添加了文本
QCPItemText *addText =new QCPItemText (textParent);//textParent为QCustomPlot对象
addText->position->setCoords(pole.dist, updateRangY(textParent,pole.type));
addText->setFont(QFont(font().family(), 10));
addText->setText(QTextCodec::codecForName("gbk")->toUnicode(pole.pole.toLatin1().data()));
addText->setColor(txtColor);
textParent->replot();
- 删除文本,没有想到太好的办法,利用函数addText->setText将文本设置为空,即可实现.
for(int i=0;i<poleCurves.count();i++)
{
qDebug()<<"find del pole"<<i<<pole.dist<<poleCurves.at(i).first.dist<<pole.pole<<poleCurves.at(i).first.pole
<<(abs(pole.dist-poleCurves.at(i).first.dist)<0.01)
<<(pole.pole==poleCurves.at(i).first.pole);
if((abs(pole.dist-poleCurves.at(i).first.dist)<0.01)&&poleCurves.at(i).first.pole.contains(pole.pole))
{
QPair<PoleInfo,QPair<curveInfo,curveInfo> > tmp=poleCurves.at(i);
tmp.first.widthText->setText("");
tmp.first.widthText->position->setCoords(0,0);
tmp.first.heightText->setText("");
tmp.first.heightText->position->setCoords(0,0);
poleCurves.replace(i,tmp);
pole=poleCurves.at(i).first;
m_drawWireWidth->graph(poleCurves.at(i).second.first.curveIndex)->setVisible(false);
m_drawWireHeight->graph(poleCurves.at(i).second.second.curveIndex)->setVisible(false);
poleCurves.remove(i);
qDebug()<<"del pole"<<i;
delFlag=true;
break;
}
}
二 曲线清除
graph(0)->data().data()->clear();
- 通过清除数据的方式,仅清除了曲线上面数据,曲线的设置被保留
graph(0)->data().data()->clear()