iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么用Qt绘制雷达扫描效果
  • 218
分享到

怎么用Qt绘制雷达扫描效果

2023-07-05 21:07:06 218人浏览 八月长安
摘要

本文小编为大家详细介绍“怎么用Qt绘制雷达扫描效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Qt绘制雷达扫描效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。scan.h的代码如下#ifndef&nb

本文小编为大家详细介绍“怎么用Qt绘制雷达扫描效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Qt绘制雷达扫描效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

scan.h的代码如下

#ifndef SCAN_H#define SCAN_H#include <QWidget>#include <QPainter>#include <QTime>#include <QTimer>#include <QDebug>#include <QPoint>#include <QtMath>namespace Ui {class Scan;}class Scan : public QWidget{    Q_OBJECTpublic:    explicit Scan(QWidget *parent = nullptr);    ~Scan();public slots:   void timerTimeOut();protected:   void paintEvent(QPaintEvent *event) override;private slots:   void on_pushButton_clicked();private:    Ui::Scan *ui;};#endif // SCAN_H

scan.cpp的代码如下

#include "scan.h"#include "ui_scan.h"QTimer *timer = new QTimer();int m_angle=0;int alpha=0;double cir_size=5;Scan::Scan(QWidget *parent) :    QWidget(parent),    ui(new Ui::Scan){    ui->setupUi(this);    setPalette(Qt::black); setAutoFillBackground(true);//强制设置背景颜色为黑色    connect(timer,SIGNAL(timeout()),this,SLOT(timerTimeOut()));//用槽函数控制雷达扫描效果。    timer->start(10);}Scan::~Scan(){    delete ui;}void Scan::timerTimeOut(){    timer->start(10);    if(m_angle<-360){        m_angle=0;    }//实现无缝连接,且保证m_angle的值不会溢出    if(alpha>=255){        alpha = 0;    }    if(cir_size>10){        cir_size=5;    }    update();}void Scan::paintEvent(QPaintEvent *event)//此函数自动执行,实现扫描动画效果{    Q_UNUSED(event);    QPainter painter(this);    QPen pen;    painter.setRenderHint(QPainter::Antialiasing);    painter.setPen(QPen(qRgba(128, 255, 0,250)));    //网格改成坐标系    int x=280;//原本为240,右移40,下移60    int y=300;        QPoint center(x,y);    painter.drawEllipse(center,240,240);    painter.drawEllipse(center,240-48,240-48);    painter.drawEllipse(center,240-96,240-96);    painter.drawEllipse(center,240-144,240-144);    painter.drawEllipse(center,240-192,240-192);        painter.translate(x,y);    painter.setPen(QPen(qRgba(255, 255, 0,250)));    painter.setFont(QFont("Calibri",10));    for(int i=1;i<=360;i++){           painter.rotate(1);           painter.drawLine(0,-240,0,-235);    }    for(int i=1;i<=72;i++){        painter.rotate(5);        painter.drawLine(0,-240,0,-232);    }    for(int i=1;i<=36;i++){        painter.setRenderHint(QPainter::Antialiasing);        painter.rotate(10);        painter.drawLine(0,-240,0,-228);    }    for(int i=1;i<=4;i++){        painter.rotate(90);        painter.drawLine(0,-240,0,-168);    }    painter.translate(-x,-y);//恢复坐标系       QConicalGradient gradient(x, y, m_angle + 360);    gradient.setColorAt(0.1, QColor(128, 255, 0, 150));    gradient.setColorAt(0.7, QColor(0, 255, 0, 0));//尾部    painter.setBrush(gradient);    painter.setPen(QPen(Qt::NoPen));//去掉外框线    if (width() > height()){        painter.drawPie(40, 60, 480, 480, m_angle * 16, 360 * 16);    }    else{ painter.drawPie(40, 60, 480, 480, m_angle * 16, 360 * 16);}        m_angle -= 1;//每次旋转1度    alpha +=2;    cir_size+=0.01;    //模拟画出可疑点    painter.setBrush(QBrush(QColor(50, 255, 200,alpha)));    painter.drawEllipse(0,0,15,15);    painter.drawEllipse(60+120,60+161,cir_size,cir_size);    painter.drawEllipse(60+240,60+161,cir_size,cir_size);    painter.drawEllipse(60+300,60+300,cir_size,cir_size);    painter.setBrush(QBrush(QColor(50, 255, 200,(alpha+50)%255)));    painter.drawEllipse(60+160,60+121,cir_size,cir_size);    painter.drawEllipse(60+60,60+191,cir_size,cir_size);    painter.drawEllipse(60+260,60+221,cir_size,cir_size);    painter.setBrush(QBrush(QColor(50, 255, 200,(alpha+100)%255)));    painter.drawEllipse(60+210,60+181,cir_size,cir_size);    painter.drawEllipse(60+10,60+281,cir_size,cir_size);    painter.drawEllipse(60+100,60+81,cir_size,cir_size); }void Scan::on_pushButton_clicked(){    m_angle=0;//将扫描动画重置并刷新数据,后面要将数据刷新的函数写在下面。}

效果图,雷达右上角的图标对应着on_pushButton的点击事件

怎么用Qt绘制雷达扫描效果

读到这里,这篇“怎么用Qt绘制雷达扫描效果”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么用Qt绘制雷达扫描效果

本文链接: https://www.lsjlt.com/news/355366.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用Qt绘制雷达扫描效果
    本文小编为大家详细介绍“怎么用Qt绘制雷达扫描效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Qt绘制雷达扫描效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。scan.h的代码如下#ifndef&nb...
    99+
    2023-07-05
  • 利用Qt绘制雷达扫描效果
    话不多说直接上代码,代码规范性可能差了点,但是效果得以实现,在这里记录一下。 scan.h的代码如下 #ifndef SCAN_H #define SCAN_H #include ...
    99+
    2023-05-14
    Qt实现雷达扫描效果 Qt雷达扫描 Qt雷达
  • WPF怎么实现雷达扫描图的绘制
    这篇文章主要介绍了WPF怎么实现雷达扫描图的绘制的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇WPF怎么实现雷达扫描图的绘制文章都会有所收获,下面我们一起来看看吧。制作思路绘制圆形(或者称之轮)绘制分割线绘制扫...
    99+
    2023-06-30
  • WPF实现雷达扫描图的绘制详解
    目录前言制作思路具体实现前言 实现一个雷达扫描图。 源代码在TK_King/雷达 (gitee.com),自行下载就好了 制作思路 绘制圆形(或者称之轮)绘制分割线绘制扫描范围添加...
    99+
    2024-04-02
  • Android Shader应用开发之雷达扫描效果
    本文实例为大家分享了Android雷达扫描效果的具体代码,供大家参考,具体内容如下效果图知识点提要 Shader 矩阵matrix 属性动画 ShaderView3package com.example.apple.shaderde...
    99+
    2023-05-30
    android 雷达扫描 roi
  • Android仿微信雷达扫描效果的实现方法
    本文主要给大家介绍的是关于Android实现微信雷达扫描效果的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:废话不多说 先上图(用AS录制的 转换工具不是很好 所以看得效果不是很好)效果图示例代码Activity 代码public...
    99+
    2023-05-31
    android 雷达扫描
  • 怎么使用python绘制雷达图
    这篇文章主要介绍了怎么使用python绘制雷达图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python有哪些常用库python常用的库:1.requesuts;2.scr...
    99+
    2023-06-14
  • Python怎么使用pyecharts绘制雷达图
    本篇内容介绍了“Python怎么使用pyecharts绘制雷达图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!雷达图雷达图是以从同一点开始的...
    99+
    2023-07-02
  • 怎么用HTML5 canvas绘制玫瑰花效果
    本篇内容介绍了“怎么用HTML5 canvas绘制玫瑰花效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • Canvas怎么绘制浮动球效果
    这篇文章主要介绍了Canvas怎么绘制浮动球效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。原效果 实现效果之前对svg有过很多接触, canvas知道也可以做到...
    99+
    2023-06-09
  • 怎么用CSS绘制三角形箭头效果
    这篇文章主要讲解了“怎么用CSS绘制三角形箭头效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用CSS绘制三角形箭头效果”吧!使用纯CSS,你只需要很...
    99+
    2024-04-02
  • 使用canvas怎么绘制一个烟花效果
    这期内容当中小编将会给大家带来有关使用canvas怎么绘制一个烟花效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。目录结构目录结构大致如下我们将烟花分为两个阶段,一个是未炸开持续上升时期,另一个是炸开后...
    99+
    2023-06-09
  • 使用JavaScript怎么绘制一个烟花效果
    这期内容当中小编将会给大家带来有关使用JavaScript怎么绘制一个烟花效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。HTML<!DOCTYPE html><html&n...
    99+
    2023-06-14
  • Flutter怎么用Canvas绘制精美表盘效果
    这篇“Flutter怎么用Canvas绘制精美表盘效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Flutter怎么用Ca...
    99+
    2023-06-29
  • 怎么用css绘制蜂巢六边形效果
    本篇内容介绍了“怎么用css绘制蜂巢六边形效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!undefin...
    99+
    2024-04-02
  • 怎么绘制小程序渐变效果
    这篇文章主要介绍“怎么绘制小程序渐变效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么绘制小程序渐变效果”文章能帮助大家解决问题。渐变渐变能用于填充一个矩形,圆,线,文字等。填充色可以不固定位固...
    99+
    2023-06-26
  • 使用canvas怎么绘制一个刮刮卡效果
    使用canvas怎么绘制一个刮刮卡效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码<!DOCTYPE html><html><...
    99+
    2023-06-07
  • 使用C语言怎么制作一个扫雷游戏
    本篇文章给大家分享的是有关使用C语言怎么制作一个扫雷游戏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底...
    99+
    2023-06-14
  • 怎么使用C/C++ QT的QChart绘制组件
    本篇内容主要讲解“怎么使用C/C++ QT的QChart绘制组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用C/C++ QT的QChart绘制组件”吧!QtCharts 组件是QT中提...
    99+
    2023-06-25
  • 怎么用CSS绘制漂亮的圆形图案效果
    本篇内容介绍了“怎么用CSS绘制漂亮的圆形图案效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!另外一种也...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作