画渐变色的圆弧练习

2024-05-01 20:52
文章标签 练习 渐变色 圆弧

本文主要是介绍画渐变色的圆弧练习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

import sysfrom PySide6.QtCore import QPointF
from PySide6.QtWidgets import *
from PySide6.QtGui import *class MyWidget(QWidget):def paintEvent(self, event):painter = QPainter(self)  # 设定画板painter.setRenderHint(QPainter.Antialiasing)  # 抗锯齿size = min(self.width(), self.height())center_pos = QPointF(size / 2, size / 2)radius = size / 2color = QColor(255, 0, 0)    # 初始颜色gradient = QConicalGradient(center_pos, 0)  # 锥形梯度,中心点和起始角度gradient.setColorAt(0, color)      # 设置起始颜色color.setAlpha(10)                 # 改变颜色的透明度gradient.setColorAt(1, color)    # 设置终点颜色painter.setPen(QPen(gradient, 10, Qt.SolidLine))     # 设置画笔painter.drawArc(10, 10, 280, 280, 0, 360 * 16)       # 画最外圈圆弧color.setAlpha(255)  # 恢复颜色的透明度gradient.setAngle(180)         # 改变渐变的起始角度gradient.setColorAt(0, color)  # 设置起始颜色color.setAlpha(10)  # 改变颜色的透明度gradient.setColorAt(0.5, color)  # 设置终点颜色painter.setPen(QPen(gradient, 10, Qt.SolidLine))  # 设置画笔painter.drawArc(30, 30, 240, 240, 180 * 16, 180 * 16)   # 画第二圈圆弧color.setAlpha(255)  # 恢复颜色的透明度gradient.setAngle(90)  # 改变渐变的起始角度gradient.setColorAt(0, color)  # 设置起始颜色color.setAlpha(10)  # 改变颜色的透明度gradient.setColorAt(0.5, color)  # 设置起始颜色painter.setPen(QPen(gradient, 10, Qt.SolidLine))  # 设置画笔painter.drawArc(50, 50, 200, 200, 270 * 16, -180 * 16)  # 画最内圈圆弧color.setAlpha(255)  # 恢复颜色的透明度if __name__ == '__main__':app = QApplication(sys.argv)widget = MyWidget()widget.resize(300, 300)widget.show()sys.exit(app.exec())

知识点:

        setAlpha() :单独改变颜色的透明度

        setAngle():单独改变渐变的起始角度

        注意渐变和圆弧的角度都是逆时针计算的。

        画圆弧用setPen(),画饼(pie)或者别的实心填充图形用setBrush()。

 

这篇关于画渐变色的圆弧练习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/952644

相关文章

二叉树经典OJ练习

个人主页:C++忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C++忠实粉丝 原创 二叉树经典OJ练习 收录于专栏【数据结构初阶】 本专栏旨在分享学习数据结构学习的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 前置说明  1. 单值二叉树 2. 相同的树 3. 对称二叉树 4. 二叉树的前序遍历 5. 二叉树中序遍历 6. 二叉树的后序遍历 7. 另一

HarmonyOS-MPChart根据y轴刻度绘制渐变色曲线

本文是基于鸿蒙三方库mpchart(OpenHarmony-SIG/ohos-MPChart)的使用,自定义绘制方法,绘制一条颜色渐变的曲线。 mpchart本身的绘制功能是不支持颜色渐变的曲线的,只支持渐变色填充大块颜色。那么当我们的需求曲线根据y轴的刻度发生变化,就需要自定义绘制方法了。 从图中我们可以看到,左边的y轴是一个从底部到顶部颜色渐变的直线,从绿色渐变到红色,而且数据曲线根据

LeetCode初级算法练习——数组篇

数组篇 26. 从排序数组中删除重复项 给定一个有序数组,你需要原地删除其中的重复内容,使每个元素只出现一次,并返回新的长度。 不要另外定义一个数组,您必须通过用 O(1) 额外内存原地修改输入的数组来做到这一点。 示例: 给定数组: nums = [1,1,2],你的函数应该返回新长度 2, 并且原数组nums的前两个元素必须是1和2不需要理会新的数组长度后面的元素 Given

Python练习Django项目——学习笔记

学习如何使用Django(http://djangoproject.com/ )来开发一个名为“学习笔记”(Learning Log)的项目,这是一个在线日志系统,让你能够记录所学习的有关特定主题的知识。     首先为这个项目制定规范,然后为应用程序使用的数据定义模型。我们将使用Django的管理系统来输入一些初始数据,再学习编写视图和模板,让Django能够为我们的网站创建网页。最后

Python数据结构的一些技巧、数据结构练习、循环与判断练习题

Python数据结构的一些技巧 多重循环 sorted函数按照长短、大小、英文字母的顺序给每个列表中的元素进行排序。sorted函数不会改变列表本身顺序,可以理解为先将列表进行复制,再进行顺序的整理, num_list = [6,2,7,4,1,3,5]print(sorted(num_list)) 在使用默认参数reverse后李彪可以按照逆序整理: sorted(num_lis

Java编程小练习题目

题目: 你和相亲对象正在餐厅里约会。键盘录入两个整数,用来分别表示你和对象的衣服的时髦度。(手动录入0-10之间的整数,不能录入其他的)。如果你的时髦度大于你对象的时髦度,相亲就成功,打印输出true,反之则输出false。 答案: import java.util.Scanner;public class yuehui {public static void main(String[] ar

《C++ Primer》第二章练习

注意:每十道题给一个链接,一共 42 题 目录 2.10 下列变量的初值分别是什么?2.20 请叙述下面这段代码的作用。2.30 对于下面这些语句,请说明对象被声明成了顶层 const 还是 底层 const ?2.40 根据自己的理解写出 Sales_data 类,最好与书中的有所区别。 2.1 类型 int、long、long long 和 short 的区别是什么 ?无

Java学习 - MySQL存储过程、函数和触发器练习实例

存储过程 存储过程是什么 存储过程是一组已经编译好的SQL语句 存储过程优点有什么 安全性能高提高代码复用性 创建存储过程的语法 DELIMITER $ # 不能加分号CREATE PROCEDURE 存储过程名(IN|OUT|INOUT 参数名 参数类型)BEGIN存储过程语句块END;$DELIMITER ; 创建一个无参的存储过程:打印 myemployees 库中

网络编程及练习

定义:         在网络通信协议下,不同计算机上运行的程序进行的数据传输。计算机和计算机之间通过网络进行数据传输         可以使用在java.net包下的技术开发出常见的网络应用程序 常见的软件架构: C/S: Client/Server 客户端/服务器  在用户本地需要下载并安装客户端程序,在远程有一个服务器端程序 优点:画面精美,用户体验好 缺点:需要开发客户端,也需

java试卷练习1

试卷练习1 一、单项选择题。 在每小题列出的四个备选项中只有一个选项是符合目的要求的,请将其代码填写在 题后的括号内。 1、Java 语言中,byte 类型占用的二进制位数是:(D) A、1 位 B、2 位 C、4 位 D、8 位 解释:byte 类型在 Java 中是 8 位二进制,也就是 1 个字节。 2、下面定义数组的格式中正确的是:(C) A、int a[10] // Java