QT雷达扫描图

.h

virtual void paintEvent(QPaintEvent *event) override;

void updent();

QTimer time;

int startrecv = 0;

.cpp

Widget::Widget(QWisget *parent)

{

ui->setupUi(this);

connect(&time,&QTimer::timeout,this,&Widget::updent);

time.start(50);

}

void Widget::updent()

{

startrecv += 5;

if(startrecv > 360)

{

startrecv = 0;

}

update(); //刷新界面

}

void Widget::paintEvent(QPaintEvent *event)

{

QPainter painter(this);

painter.setRenderHint(QPainter::Antialiasing,true); //设置抗锯齿

painter.setBrush(Qt::black); //设置画刷

painter.drawRect( this->rect() ); //绘制矩形,将界面全部涂黑

painter.translate( rect().center() ); //将坐标系转移到屏幕中心

painter.setPen( QPen(Qt::green,4) ); //设置画笔

int side = qMin( width(),height() )/2/7 //qMin用于计算两个数之间的最小值,side表示最小圆圈的半径

painter.setBrush( Qt::NoBrush ); //丢掉画刷

//绘制圆形********************************************************

for(int i = 1; i <= 7; i++)

{

painter.drawEllipse( QPoint(0,0) , side*i , side*i ); //绘制圆形

}

painter.drawLine( -side*7,0 , side*7,0 ); //绘制x轴

painter.drawLine(0,-side*7 , 0,side*7); //绘制y轴

//****************************************************************

//锥形渐变 起始角度为 startrecv *********************************

QConicalGradient co( 0,0, -startrecv );

co.setColorAt(0,QColor(0,255,0,200));

co.setColorAt(0.1,QColor(0,255,0,100));

co.setColorAt(0.2,QColor(0,255,0,0));

co.setColorAt(1,QColor(0,255,0,0));

painter.setPen(Qt::NoPen);

painter.setBrush(co);

//****************************************************************

//画扇形**********************************************************

int x = -qMin( width(),height() )/2;

int y = -qMin( width(),height() )/2;

int w = qMin( width(),height() );

int h = qMin( width(),height() );

QRectF pieRect(x,y,w,h);

painter.drawPie(pieRect,-startrecv*16,36*16)//画扇形

}

相关推荐
eqwaak04 分钟前
动态图表导出与视频生成:精通Matplotlib Animation与FFmpeg
开发语言·python·ffmpeg·音视频·matplotlib
刘新明19896 分钟前
Frida辅助分析OLLVM虚假控制流程(下)
java·开发语言·前端
第二只羽毛28 分钟前
重载和继承的实践
java·开发语言
光军oi1 小时前
全栈开发杂谈————JAVA微服务全套技术栈详解
java·开发语言·微服务
帮帮志1 小时前
目录【系列文章目录】-(关于帮帮志,关于作者)
java·开发语言·python·链表·交互
执尺量北斗1 小时前
LinkMate 智能会议室系统:基于 Qt / QML / WebRTC / FFmpeg / Whisper / OpenGL 的实时音视频会议平台
qt·ffmpeg·webrtc
qiuiuiu4131 小时前
正点原子RK3568学习日记-GIT
linux·c语言·开发语言·单片机
草莓熊Lotso1 小时前
《C++ STL list 完全指南:从基础操作到特性对比,解锁链表容器高效用法》
开发语言·c++·list
二王一个今2 小时前
Python打包成exe(windows)或者app(mac)
开发语言·python·macos
C嘎嘎嵌入式开发7 小时前
(2)100天python从入门到拿捏
开发语言·python