效果视频地址:

https://www.bilibili.com/video/av85608043/

源码:

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QTimer>
namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = nullptr);~MainWindow();void paintEvent(QPaintEvent *event);QTimer *timer;
public slots:void timeDeal();
private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPainter>
#include <QThread>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);timer = new QTimer;timer->setInterval(20);connect(timer,SIGNAL(timeout()),this,SLOT(timeDeal()));timer->start();
}MainWindow::~MainWindow()
{delete ui;
}static int i = 0;void MainWindow::paintEvent(QPaintEvent *event)
{Q_UNUSED(event);QPainter painter(this);int pSize = 3;// 设置画笔颜色int r = qrand()%255;int g = qrand()%255;int b = qrand()%255;painter.setPen(QPen(QColor(r, g, b),pSize));QRectF rect(50.0, 50.0, 100.0, 100.0);painter.setRenderHint(QPainter:: Antialiasing, true);  //设置渲染,启动反锯齿painter.drawArc(rect,i*16,i*16); //绘画角度为30°~(30+150°)QPainter painter1(this);// 设置画笔颜色r = qrand()%255;g = qrand()%255;b = qrand()%255;painter1.setPen(QPen(QColor(r, g, b),pSize));QRectF rect1(150.0, 50.0, 100.0, 100.0);painter1.setRenderHint(QPainter:: Antialiasing, true);  //设置渲染,启动反锯齿painter1.drawArc(rect1,i*16,i*16); //绘画角度为30°~(30+150°)QPainter painter2(this);// 设置画笔颜色r = qrand()%255;g = qrand()%255;b = qrand()%255;painter2.setPen(QPen(QColor(r, g, b),pSize));QRectF rect2(250.0, 50.0, 100.0, 100.0);painter2.setRenderHint(QPainter:: Antialiasing, true);  //设置渲染,启动反锯齿painter2.drawArc(rect2,i*16,i*16); //绘画角度为30°~(30+150°)QPainter painter3(this);// 设置画笔颜色r = qrand()%255;g = qrand()%255;b = qrand()%255;painter3.setPen(QPen(QColor(r, g, b),pSize));QRectF rect3(100.0, 100.0, 100.0, 100.0);painter3.setRenderHint(QPainter:: Antialiasing, true);  //设置渲染,启动反锯齿painter3.drawArc(rect3,i*16,i*16); //绘画角度为30°~(30+150°)QPainter painter4(this);// 设置画笔颜色r = qrand()%255;g = qrand()%255;b = qrand()%255;painter4.setPen(QPen(QColor(r, g, b),pSize));QRectF rect4(200.0, 100.0, 100.0, 100.0);painter4.setRenderHint(QPainter:: Antialiasing, true);  //设置渲染,启动反锯齿painter4.drawArc(rect4,i*16,i*16); //绘画角度为30°~(30+150°)QFont font;font.setPixelSize(50);QString text = "奥林匹克";QFontMetrics metrics(font);int w = metrics.width(text);int h = metrics.height();QPainter painter5(this);r = qrand()%255;g = qrand()%255;b = qrand()%255;painter5.setFont(font);painter5.setPen(QPen(QColor(r, g, b),pSize));QRectF rect5(120.0,250.0,200,50);painter5.drawText(rect5,text);
}void MainWindow::timeDeal(){i++;update();}

qt用QPainter绘制会动会闪烁的奥运标志相关推荐

  1. Qt使用QPainter绘制方式显示图片

    Qt使用QPainter绘制方式显示图片 文章目录 Qt使用QPainter绘制方式显示图片 1.前言 2.主要代码 3.实现效果 4.源代码 更多精彩内容

  2. QT 中QPainter绘制文字、图片

    1. 把字符串绘制在QPixmap上 QPixmap MainWindow::text2Pixmap(QString text) { QFontMetrics fmt(m_font); QPixmap ...

  3. Qt 通过 QPainter 绘制坐标轴

    一.概述 在自定义贝塞尔曲线中想绘制一个坐标轴. 二.步骤 2.1 新建一个类 PaintAxis 继承 QWidget 然后在界面上拖拽一个 widget,右键 widget 提升为 PaintAx ...

  4. 使用Qt的QPainter绘制阿基米德螺旋线

    把笔记 c++绘制极坐标曲线 的代码中的allegro换成Qt的了. 因为自定义的QWidget写在源文件中所以Q_OBJECT注释掉了. #include <QApplication> ...

  5. QT之QPainter用法

    QPainter可以绘制从简单的直线到像饼图和弦这样的复杂形状.它也可以绘制排列的文本和像素映射.通常,它在一个"自然的"坐标系统中绘制. QPainter 一般在部件的绘图事件 ...

  6. QT基础之一文介绍QPainter绘制基础图形(画笔画刷设置,填充铺展渐变效果)

    更多参见 QT基础与实例应用目录 代码链接 GitHub链接 :QPainterSimpleExample 介绍 结合实例介绍如何利用QPainter绘制各种图形,可绘制不同形状,使用不同画笔颜色.画 ...

  7. VS+QT QPainter 绘制直线

    1.打开软件,创建一个GUI项目文件. 2.编写.h(Draw2.h)文件代码,如下: #pragma once#include <QtWidgets/QMainWindow> #incl ...

  8. Qt组件中的双缓冲无闪烁绘图

    双缓冲绘图 在Qt4中,所有的窗口部件默认都使用双缓冲进行绘图.使用双缓冲,可以减轻绘制的闪烁感.在有些情况下,用户要关闭双缓冲,自己管理绘图.下面的语句设置了窗口部件的Qt::WA_PaintOnS ...

  9. PyQt5利用QPainter绘制各种图形

    这个例子我做了好几天: 1)官网C++的源码,改写成PyQt5版本的代码,好多细节不会转化 2)网上的PyQt的例子根本运行不了 填了无数个坑,结合二者,终于能完成了一个关于绘图的东西.这个过程也掌握 ...

最新文章

  1. 无法解析的外部符号 WinMain,该符号在函数 int __cdecl invoke_main(void) (?invoke_main@@YAHXZ) 中被引用
  2. 路由异常的起源-如何影响最终用户?——Vecloud微云
  3. 计算机科学和机器学习中的代数学、拓扑学、微积分以及最优化理论
  4. P1003 铺地毯(模拟)
  5. ubuntu设置始终亮屏_如何设置默认显示亮度?
  6. 传统配置形式存在的问题
  7. python的运算顺序和c一样吗,【Python】Python 对比 C语言的差异
  8. webpack(2)--开发环境基本配置
  9. [译]Kinect for Windows SDK开发入门(二):基础知识 上
  10. java洗扑克牌算法分析_IT兄弟连 Java语法教程 综合案例
  11. 如何在Ubuntu 16.04上安装和配置GitLab
  12. 2020 年百度之星·程序设计大赛 - 初赛一
  13. 【mmcv】——CNN
  14. 基于java宿舍管理系统的开题报告_基于Java的学生宿舍管理系统开题报告
  15. U盘插入后只显示安全删除硬件问题
  16. 【技美百人计划】屏幕空间实现dither等溶解效果
  17. 为什么字节跳动的年薪50万的软件测试工程师遍地都是?
  18. iframe去除边框
  19. [python爬虫之路day5]:实战之电影天堂2019精选电影爬取
  20. 数据构造---家族树

热门文章

  1. linux移动子目录到上一目录,linux 把当前目录的一个子目录里的文件移动到另一个子目录里用什么指令...
  2. 技术干货 | iOS逆向工程
  3. C++的get()函数使用详解
  4. C语言中time函数和localtime获取系统时间和日期
  5. csdn如何转载别人的文章
  6. 解决浏览器页面缩放前端页面大小自适应改变的问题
  7. 卷积神经网络中二维卷积核与三维卷积核有什么区别?
  8. mysql必须加单引号吗_mysql加单引号和不加单引号的性能比较
  9. oracle入门教程
  10. 《麻辣女兵》台词精选: