绘图QPainter-画刷

Qt提供的画刷风格:

Qt.TexturePattern   自定义图像画刷

线性渐变 QLinearGradientPattern

QLinearGradient需要传入的参数为需要进行渐变的区域坐标,那其实只要把我们在paintEvent()事件函数中要绘制的矩形区域的坐标输入即可(输入两点坐标,若输入对角坐标,则在对角方向上渐变,笔者这里就是输入的左上和右下对角坐标)

径向渐变QRadialGradientPattern

锥形渐变QConicalGradientPattern

 1 import sys
 2 from PyQt5.QtCore import Qt
 3 from PyQt5.QtGui import QPainter, QBrush, QPixmap, QLinearGradient, QRadialGradient, QConicalGradient
 4 from PyQt5.QtWidgets import QApplication, QWidget
 5
 6 class Demo(QWidget):
 7     def __init__(self):
 8         super(Demo, self).__init__()
 9         self.resize(600, 600)
10
11         self.brush1 = QBrush(Qt.SolidPattern)  # 实例化一个画刷。参数:画刷样式
12         #画刷默认的样式为Qt.NoBrush
13
14         self.brush2 = QBrush(Qt.Dense6Pattern)
15         self.brush2.setColor(Qt.red)  #设置画刷颜色
16
17         gradient1 = QLinearGradient(200, 200, 300, 300) #实例化一个线性渐变画刷样式
18         #QLinearGradient需要传入的参数为需要进行渐变的区域坐标,那其实只要把我们在paintEvent()事件函数中要绘制的矩形区域的坐标输入即可(输入两点坐标,若输入对角坐标,则在对角方向上渐变,笔者这里就是输入的左上和右下对角坐标)
19
20         gradient1.setColorAt(0.2, Qt.red)#设置渐变位置和渐变色
21         #第一个参数代表颜色开始渐变的位置(大小范围为0-1),第二个参数为颜色值。比如gradient1.setColorAt(0.2, Qt.red)的意思就是说红色在渐变区域0.2(即20%)处的位置开始渐变到下一种颜色
22         gradient1.setColorAt(0.8, Qt.green)
23         gradient1.setColorAt(1, Qt.blue)
24         self.brush3 = QBrush(gradient1)#实例化画刷,样式:渐变色
25
26         gradient2 = QRadialGradient(350, 350, 50, 350, 350)  #实例化一个径向渐变画刷样式
27         #前两个参数为中心点坐标,50为半径(渐变范围),后两个为焦点坐标???
28         gradient2.setColorAt(0, Qt.red)
29         gradient2.setColorAt(1, Qt.blue)
30         self.brush4 = QBrush(gradient2)
31
32         gradient3 = QConicalGradient(450, 450, 0)   #实例化一个锥形渐变画刷样式
33         #前两个值为中心点坐标,最后一个为首个颜色开始处的角度值(范围为0-360)
34         gradient3.setColorAt(0, Qt.red)
35         gradient3.setColorAt(1, Qt.blue)
36         self.brush5 = QBrush(gradient3)
37
38         self.brush6 = QBrush(Qt.TexturePattern)  #自定义图像画刷
39         self.brush6.setTexture(QPixmap(‘images/大象.png‘))  #设置图像
40
41     def paintEvent(self, QPaintEvent):
42         painter = QPainter(self)
43         painter.setBrush(self.brush1)  # 给画布设置画刷
44         painter.drawRect(0, 0, 100, 100)
45
46         painter.setBrush(self.brush2)
47         painter.drawRect(100, 100, 100, 100)
48
49         painter.setBrush(self.brush3)
50         painter.drawRect(200, 200, 100, 100)
51
52         painter.setBrush(self.brush4)
53         painter.drawRect(300, 300, 100, 100)
54
55         painter.setBrush(self.brush5)
56         painter.drawRect(400, 400, 100, 100)
57
58         painter.setBrush(self.brush6)
59         painter.drawRect(500, 500, 100, 100)
60
61 if __name__ == ‘__main__‘:
62     app = QApplication(sys.argv)
63     demo = Demo()
64     demo.show()
65     sys.exit(app.exec_())

原文地址:https://www.cnblogs.com/liming19680104/p/10404419.html

时间: 2024-10-07 03:08:39

绘图QPainter-画刷的相关文章

[游戏模版3] Win32 画笔 画刷 图形

>_<:introduce the functions of define\create\use pen and brush to draw all kinds of line and some graphs. >_<!following 2 files are the same with the previous and file main.cpp has some changes. 1 //{{NO_DEPENDENCIES}} 2 // Microsoft Visual C+

(转载)VS2010/MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush)

上一节中鸡啄米主要讲的是画笔CPen的用法,前面也说了,GDI对象中最常用的就是画笔和画刷,本节就讲讲画刷CBrush. 鸡啄米依然是通过实例的方式来说明画刷的用法.此实例要实现的功能是,对话框上有一个按钮控件和一个图片控件,点击按钮弹出颜色对话框,然后在颜色对话框中选择颜色并点击"确定"后,图片控件中将显示选择的颜色. 其实此实例的功能,还可以通过重载对话框WM_CTLCOLOR消息的响应函数等方法来实现,但为讲解画刷的CBrush的使用,鸡啄米采用了下面代码中的方法. 以下是此实例

WPF 10天修炼 第八天 - 形状、画刷和变换

图形 在WPF中使用绘图最简单的就是使用Shape类.Shape类继承自FrameworkElement,是一个专门用来绘图的类.Shape类中年派生的类有直线.矩形.多边形和圆形等. System.Windows.Shapes.Shape类是一个抽象类,从该类又派生出多个不同的子类,如下图: Shape类的通用属性 属性名称 描述 Fill 绘制填充的画刷 Stroke 绘制边框的画刷 StrokeThickness 与设备无关的边框宽度 StrokeStartLineCap和StrokeEn

qt画刷和画笔

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #画刷和画笔:QBrush 定义了 QPainter 的填充模式,具有样式.颜色.渐变以及纹理等属性. # 画刷的 style()定义了填充的样式,使用 Qt::BrushStyle 枚举,默认值是 Qt::NoBrush,也就是不进行任何填充. #画刷的 color()定义了填充模式的颜色.这个颜色可以是  Qt  预定义的颜色常量,也就是 # Qt::Globa

利用QT中Qpainter画点,直线,弧线等简单图形

MyImgTest.h: #ifndef MYIMGTEST_H #define MYIMGTEST_H #include <QWidget> class MyImgTest : public QWidget { //Q_OBJECT public: MyImgTest(QWidget* parent = 0); ~MyImgTest(); void paintEvent(QPaintEvent *); }; #endif MyImgTest.cpp: #include "MyImg

WPF学习系列之八(形状,画刷和变换)

形状,画刷和变换   概述: 在许多用户界面技术中,普通控件和自定义绘图之间具有清晰的区别.通常来说,绘图特性只用于特定的应用程序--如游戏,数据可视化和物理仿真等.而WPF具有一个非常不同的原则.它以相同的方式处理控件和绘制的图形. 一.理解形状.       在WPF用户界面中,绘制2D图形内容的最简单方法是使用形状(shape) :专门用于表示简单的直线,椭圆,矩形以及多边形的类.从技术角度讲,形状就是所谓的绘图图元.可以组合这些基本元素来创建更复杂的图形.形状最重要的细节是,它们都继承自

十一,形状、画刷和变换

在WPF用户界面中,绘制2D图形内容最简单的方法是使用形状(shape):它是专门用于表示简单的直线.椭圆.矩形及多边形的类.从技术角度讲,形状就是所谓的绘图图元,可以组合这些基本元素来创建更复杂的图形.在WPF中,形状都是继承自FrameworkElement类,因此,形状是元素. Shape类 每个形状都继承自抽象的System.Windows.Shapes.Shape类.下图是形状类的继承层次: 以下是Shape类定义了几个重要的属性: 矩形和椭圆 Ellipse类没有添加任何属性,Rec

VS2010/MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush)

上一节中鸡啄米主要讲的是画笔CPen的用法,前面也说了,GDI对象中最常用的就是画笔和画刷,本节就讲讲画刷CBrush. 鸡啄米依然是通过实例的方式来说明画刷的用法.此实例要实现的功能是,对话框上有一个按钮控件和一个图片控件,点击按钮弹出颜色对话框,然后在颜色对话框中选择颜色并点击"确定"后,图片控件中将显示选择的颜色. 其实此实例的功能,还可以通过重载对话框WM_CTLCOLOR消息的响应函数等方法来实现,但为讲解画刷的CBrush的使用,鸡啄米采用了下面代码中的方法. 以下是此实例

画刷使用

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ HDC hdc; //设备环境句柄 PAINTSTRUCT ps; //存储绘图环境的相关信息 //定义两个画刷,定义为静态变量 static HBRUSH hSolidBrush; static HBRUSH hHatchBrush; switch (message) { case WM_CREATE: //创建红色实心画刷,保存句柄

利用图形窗口分割法将极坐标方程:r=cos(θ/3)+1/9用四种绘图方式画在不同的窗口中

利用图形窗口分割法将极坐标方程:r=cos(θ/3)+1/9用四种绘图方式画在不同的窗口中. 解:MATLAB指令: theta=0:0.1:6*pi;rho=cos(theta/3)+1/9; >> polar(theta,rho) >> >> plot(theta,rho) >> semilogx(theta,rho) >> grid >> hist(rho,15) 结果分别如下图: 图1 图2 图3 图4