欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > QT自定义扫描控件,支持任意方位拖动和拖动扫描范围。

QT自定义扫描控件,支持任意方位拖动和拖动扫描范围。

2025/2/22 2:05:10 来源:https://blog.csdn.net/weixin_43246170/article/details/145710344  浏览:    关键词:QT自定义扫描控件,支持任意方位拖动和拖动扫描范围。

请添加图片描述
部分代码:

void FishControlForm::paintEvent(QPaintEvent *event)
{QPainter p(this);p.setRenderHints(QPainter::Antialiasing|QPainter::SmoothPixmapTransform);p.translate(m_centerPoint);//bgp.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);}
}

源码

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词