当前位置: 首页 > news >正文

使用pyqt绘制一个爱心!

使用pyqt绘制一个爱心!

  • 介绍
  • 效果
  • 代码

介绍

  • 使用pyqt绘制一个爱心!

效果

在这里插入图片描述

代码

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget
from PyQt5.QtGui import QPainter, QPen, QBrush, QColor
from PyQt5.QtCore import Qt, QPointF
import numpy as npclass HeartWidget(QWidget):def __init__(self):super().__init__()self.setWindowTitle('Heart Shape with PyQt5')self.setGeometry(100, 100, 800, 600)def paintEvent(self, event):painter = QPainter(self)painter.setRenderHint(QPainter.Antialiasing)# Generate heart shape coordinatest = np.linspace(0, 2 * np.pi, 1000)x = 16 * np.sin(t)**3y = -(13 * np.cos(t) - 5 * np.cos(2 * t) - 2 * np.cos(3 * t) - np.cos(4 * t))# Normalize coordinatesx = (x - min(x)) / (max(x) - min(x)) * self.width()y = (y - min(y)) / (max(y) - min(y)) * self.height()# Set gradient colorscolors = [QColor.fromHsvF(i / len(t), 1.0, 1.0) for i in range(len(t))]# Draw heart shapefor i in range(len(t) - 1):painter.setPen(QPen(colors[i], 2))painter.drawLine(QPointF(x[i], y[i]), QPointF(x[i + 1], y[i + 1]))# Fill heart shape with gradient colorspainter.setPen(Qt.NoPen)painter.setBrush(QBrush(Qt.SolidPattern))for i in range(len(t) - 1):painter.setBrush(QBrush(colors[i]))painter.drawPolygon(QPointF(x[i], y[i]), QPointF(x[i + 1], y[i + 1]), QPointF(self.width() / 2, self.height() / 2))class MainWindow(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle('Heart Shape with PyQt5')self.setGeometry(100, 100, 800, 600)self.setCentralWidget(HeartWidget())if __name__ == '__main__':app = QApplication(sys.argv)window = MainWindow()window.show()sys.exit(app.exec_())

相关文章:

  • C++ 实现深度优先搜索(DFS)的简单示例代码
  • 【OpenCV 基础知识 18】对两图像按位与操作
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • C#屏蔽基类成员
  • 【MySQL】库的基础操作
  • v-rep--lua接口和c++接口的关联
  • Docker自定义镜像
  • 探索未来直播新纪元:Voodoo Spatial 的3D 直播革命
  • Java顺序表
  • web4.0-元宇宙虚拟现实
  • CCF-GESP 等级考试 2023年12月认证C++一级真题
  • JavaScript Window对象
  • 如何让大模型更聪明?提升AI智能的关键策略
  • Cocos Creator 编辑器的数据绑定详解
  • C#同花顺下单 模拟操作版接口实现
  • 03Go 类型总结
  • 4. 路由到控制器 - Laravel从零开始教程
  • angular2开源库收集
  • C语言笔记(第一章:C语言编程)
  • ES2017异步函数现已正式可用
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • k8s如何管理Pod
  • mysql外键的使用
  • Spark RDD学习: aggregate函数
  • SQL 难点解决:记录的引用
  • Vue组件定义
  • Wamp集成环境 添加PHP的新版本
  • win10下安装mysql5.7
  • 阿里云应用高可用服务公测发布
  • 百度小程序遇到的问题
  • 从伪并行的 Python 多线程说起
  • 服务器之间,相同帐号,实现免密钥登录
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 使用Swoole加速Laravel(正式环境中)
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ‌JavaScript 数据类型转换
  • #window11设置系统变量#
  • #图像处理
  • (~_~)
  • (6)设计一个TimeMap
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (C语言)逆序输出字符串
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (HAL库版)freeRTOS移植STMF103
  • (k8s)kubernetes 部署Promehteus学习之路
  • (LLM) 很笨
  • (八)Spring源码解析:Spring MVC
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (黑马C++)L06 重载与继承