
部分代码:
csharp
void FishControlForm::paintEvent(QPaintEvent *event)
{
QPainter p(this);
p.setRenderHints(QPainter::Antialiasing|QPainter::SmoothPixmapTransform);
p.translate(m_centerPoint);
//bg
p.setPen(Qt::white);
p.drawEllipse(-m_radius,-m_radius,m_radius*2,m_radius*2);
if (!m_state){
p.save();
p.rotate(-m_dropAngle);
//扇形区域
QRadialGradient Radial(0,0,m_radius,0,0); //设置圆的原点和焦点在中心
Radial.setColorAt(0,QColor("#ccffffff"));
Radial.setColorAt(1,QColor("#00ffffff"));
p.setBrush(Radial);
p.setPen(Qt::NoPen);
p.drawPie(-m_radius,-m_radius,m_radius*2,m_radius*2,80*16,MinFishScanAngle*16);
p.setBrush(Qt::NoBrush);
p.restore();
p.setPen(Qt::white);
p.drawEllipse(getDropRect());
}
else{
if (m_rtShow){
p.save();
p.rotate(-m_dropAngleRt);
p.save();
p.rotate(16);
if (!m_lfShow){
p.setBrush(QBrush(QColor("#70ffffff")));
p.drawEllipse(-46,-210,93,12);
}
else{
p.setBrush(QBrush(QColor("#70777777")));
p.drawEllipse(-46,-210,93,12);
}
p.restore();
p.restore();
p.setPen(Qt::white);
p.drawEllipse(getDropRect2());
}
if (m_lfShow){
p.save();
p.rotate(-m_dropAngleLf);
p.save();
p.rotate(-16);
if (!m_rtShow){
p.setBrush(QBrush(QColor("#70ffffff")));
p.drawEllipse(-46,-210,93,12);
}
else{
p.setBrush(QBrush(QColor("#70777777")));
p.drawEllipse(-46,-210,93,12);
}
p.restore();
p.restore();
p.setPen(Qt::white);
p.drawEllipse(getDropRect3());
}
//扇形区域
QRadialGradient Radial(0,0,m_radius,0,0); //设置圆的原点和焦点在中心
Radial.setColorAt(0,QColor("#ccffffff"));
Radial.setColorAt(1,QColor("#00ffffff"));
p.setBrush(Radial);
p.setPen(Qt::NoPen);
int angle = (-m_dropAngleRt+m_dropAngleLf+MinFishScanAngle)%360;
if (angle < 0)
angle = 360 + angle;
p.drawPie(-m_radius,-m_radius,m_radius*2,m_radius*2,(m_dropAngleRt+80)*16,angle*16);
//自动扫描扇形
p.drawPie(-m_radius,-m_radius,m_radius*2,m_radius*2,(m_scanAngle+80)*16,20*16);
}
}