绘图QPainter-画刷
Qt提供的画刷风格:

Qt.TexturePattern 自定义图像画刷
线性渐变 QLinearGradientPattern
QLinearGradient需要传入的参数为需要进行渐变的区域坐标,那其实只要把我们在paintEvent()事件函数中要绘制的矩形区域的坐标输入即可(输入两点坐标,若输入对角坐标,则在对角方向上渐变,笔者这里就是输入的左上和右下对角坐标)
径向渐变QRadialGradientPattern
锥形渐变QConicalGradientPattern
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPainter, QBrush, QPixmap, QLinearGradient, QRadialGradient, QConicalGradient
from PyQt5.QtWidgets import QApplication, QWidget class Demo(QWidget):
def __init__(self):
super(Demo, self).__init__()
self.resize(600, 600) self.brush1 = QBrush(Qt.SolidPattern) # 实例化一个画刷。参数:画刷样式
#画刷默认的样式为Qt.NoBrush self.brush2 = QBrush(Qt.Dense6Pattern)
self.brush2.setColor(Qt.red) #设置画刷颜色 gradient1 = QLinearGradient(200, 200, 300, 300) #实例化一个线性渐变画刷样式
#QLinearGradient需要传入的参数为需要进行渐变的区域坐标,那其实只要把我们在paintEvent()事件函数中要绘制的矩形区域的坐标输入即可(输入两点坐标,若输入对角坐标,则在对角方向上渐变,笔者这里就是输入的左上和右下对角坐标) gradient1.setColorAt(0.2, Qt.red)#设置渐变位置和渐变色
#第一个参数代表颜色开始渐变的位置(大小范围为0-1),第二个参数为颜色值。比如gradient1.setColorAt(0.2, Qt.red)的意思就是说红色在渐变区域0.2(即20%)处的位置开始渐变到下一种颜色
gradient1.setColorAt(0.8, Qt.green)
gradient1.setColorAt(1, Qt.blue)
self.brush3 = QBrush(gradient1)#实例化画刷,样式:渐变色 gradient2 = QRadialGradient(350, 350, 50, 350, 350) #实例化一个径向渐变画刷样式
#前两个参数为中心点坐标,50为半径(渐变范围),后两个为焦点坐标???
gradient2.setColorAt(0, Qt.red)
gradient2.setColorAt(1, Qt.blue)
self.brush4 = QBrush(gradient2) gradient3 = QConicalGradient(450, 450, 0) #实例化一个锥形渐变画刷样式
#前两个值为中心点坐标,最后一个为首个颜色开始处的角度值(范围为0-360)
gradient3.setColorAt(0, Qt.red)
gradient3.setColorAt(1, Qt.blue)
self.brush5 = QBrush(gradient3) self.brush6 = QBrush(Qt.TexturePattern) #自定义图像画刷
self.brush6.setTexture(QPixmap('images/大象.png')) #设置图像 def paintEvent(self, QPaintEvent):
painter = QPainter(self)
painter.setBrush(self.brush1) # 给画布设置画刷
painter.drawRect(0, 0, 100, 100) painter.setBrush(self.brush2)
painter.drawRect(100, 100, 100, 100) painter.setBrush(self.brush3)
painter.drawRect(200, 200, 100, 100) painter.setBrush(self.brush4)
painter.drawRect(300, 300, 100, 100) painter.setBrush(self.brush5)
painter.drawRect(400, 400, 100, 100) painter.setBrush(self.brush6)
painter.drawRect(500, 500, 100, 100) if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Demo()
demo.show()
sys.exit(app.exec_())
qp.setBrush(QColor(200, 0, 0)) #给画布设置画刷颜色
绘图QPainter-画刷的更多相关文章
- C# GDI绘图之——画笔和画刷
绘制图形需要画笔和画刷: Pen(画笔类): Pen为C#编程语言中专门的画笔类 使用方式: // 用系统颜色来初始化我们的画笔类,使用Color静态类中的颜色 1. Pen p1 = new Pen ...
- Qt 学习之路 2(25):画刷和画笔
Home / Qt 学习之路 2 / Qt 学习之路 2(25):画刷和画笔 Qt 学习之路 2(25):画刷和画笔 豆子 2012年11月5日 Qt 学习之路 2 17条评论 前面一章我们提 ...
- [游戏模版3] Win32 画笔 画刷 图形
>_<:introduce the functions of define\create\use pen and brush to draw all kinds of line and s ...
- WPF 动画(形状、画刷)
一:形状 在WPF用户界面中,可以通过形状(Shape)来绘制直线.椭圆.矩形及一些多边形的类.通过这些基本的图像,组合成为复杂的图形. Shape类中,主要的形状有Rectangle(),Ellip ...
- WPF学习系列之八(形状,画刷和变换)
形状,画刷和变换 概述: 在许多用户界面技术中,普通控件和自定义绘图之间具有清晰的区别.通常来说,绘图特性只用于特定的应用程序--如游戏,数据可视化和物理仿真等.而WPF具有一个非常不同的原则.它 ...
- qt画刷和画笔
# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #画刷和画笔:QBrush 定义了 QPainter 的填充模式,具 ...
- Windows Phone开发(31):画刷
原文:Windows Phone开发(31):画刷 画刷是啥玩意儿?哈,其实画刷是用来涂鸦,真的,没骗你,至于你信不信,反正我信了. 本文通过价绍几个典型的画刷,使你明白画刷就是用来涂鸦的. 一.纯色 ...
- WPF 10天修炼 第八天 - 形状、画刷和变换
图形 在WPF中使用绘图最简单的就是使用Shape类.Shape类继承自FrameworkElement,是一个专门用来绘图的类.Shape类中年派生的类有直线.矩形.多边形和圆形等. System. ...
- GDI+编程(画笔/画刷/路径/区域)
构造Graphics对象 Graphics类是GDI+程序设计的核心,Graphics类能够完成大部分的绘图,文本输出,几何图形的填充及坐标系统的转换等各种操作.在功能上,它与GDI的设备环境(DC) ...
- VS2010/MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush)
上一节中鸡啄米主要讲的是画笔CPen的用法,前面也说了,GDI对象中最常用的就是画笔和画刷,本节就讲讲画刷CBrush. 鸡啄米依然是通过实例的方式来说明画刷的用法.此实例要实现的功能是,对话框上有一 ...
随机推荐
- Jest & React & Enzyme
Jest & React & Enzyme auto units testing https://reactjs.org/docs/test-utils.html https://gi ...
- webpack & bundle analyzer
webpack & bundle analyzer webpack bundle analyzer https://github.com/th0r/webpack-bundle-analyze ...
- Fiddler4入门——手机抓包
一.下载工具包 百度搜索”fiddler 下载“ ,安装最新版本 下载的软件安装包为“fiddler_4.6.20171.26113_setup.exe”格式,双击安装.安装成功,在“开始”-“所有程 ...
- JavaScript——变量
本文简述了JavaScript变量的数据类型,以及变量类型检测与类型转换 一.介绍 JavaScript的变量有6种数据类型,包含5种原始类型和1种对象类型.本人比较喜欢用逻辑图的形式总结知识点,这样 ...
- 洛谷P2698 [USACO12MAR]花盆Flowerpot
P2698 [USACO12MAR]花盆Flowerpot 题目描述 Farmer John has been having trouble making his plants grow, and n ...
- Codeforces965E Short Code 【启发式合并】【堆】
题目大意: 给出总长度不超过1E+5的不重复字符串集,给每个字符串选一个前缀使得可以区分它. 题目分析: KAN出的DIV2难度一般不高,想升Ranting的可以试试. 简单的树上启发式合并,建出Tr ...
- Cgod省选的爆零日记
声明 虽然是日记,但博主太咕咕咕了,所以可能会鸽掉. 3.11 辣鸡杭二的机子,卡我常数,削我分数. 他们那边的机子好像比我们慢四倍的样子? 开局刚\(T3\),分数全靠骗. \(yy\)许久\(GG ...
- SharePoint “File not found” 错误
Troubleshooting the SharePoint "File not found" Error Have you ever come across a "Fi ...
- luogu3628 特别行动队 (斜率优化dp)
推出来式子以后斜率优化水过去就完事了 #include<cstdio> #include<cstring> #include<algorithm> #include ...
- luogu3195/bzoj1010 玩具装箱(斜率优化dp)
推出来式子然后斜率优化水过去就完事了 #include<cstdio> #include<cstring> #include<algorithm> #include ...