qt画刷和画笔

# -*- coding: utf-8 -*-

# python:2.x

__author__ = ‘Administrator‘

#画刷和画笔:QBrush 定义了 QPainter 的填充模式,具有样式、颜色、渐变以及纹理等属性。

# 画刷的 style()定义了填充的样式,使用 Qt::BrushStyle 枚举,默认值是 Qt::NoBrush,也就是不进行任何填充。

#画刷的 color()定义了填充模式的颜色。这个颜色可以是  Qt  预定义的颜色常量,也就是

# Qt::GlobalColor,也可以是任意 QColor 对象。画刷的 gradient()定义了渐变填充。这个属性只有在样式是 Qt::LinearGradientPattern、

# Qt::RadialGradientPattern 或者 Qt:: ConicalGradientPattern 之一时才有效。渐变可以由

# QGradient 对象表示。Qt  提供了三种渐变:QLinearGradient、QConicalGradient 和

# QRadialGradient,它们都是 QGradient 的子类。我们可以使用如下代码片段来定义一个

# 渐变的画刷

#学习地址:http://blog.csdn.net/lpp0900320123/article/details/25246873

from PyQt4.QtGui import  *

from PyQt4.Qt import *

from PyQt4 import QtGui, QtCore

from PyQt4.QtCore import *

import sys

class Painterd(QWidget):

def __init__(self):

super(Painterd,self).__init__()

self.resize(200,100)

self.setWindowTitle(‘paint‘)

#画笔

def paintEvent(self, e):

paint=QPainter(self)

paint.drawLine(0,0,100,100)#直线

pen=QPen(Qt.green,5,Qt.DashDotLine,Qt.FlatCap,Qt.RoundJoin)

paint.setPen(pen)#使用画笔

rectanglen=QRectF(70.,40.,80.,60.)

start1=30*16

start2=120*16

#绘制圆弧

paint.drawArc(rectanglen,start1,start2)

#重新定义画笔

pen.setWidth(2)

pen.setStyle(Qt.SolidLine)

paint.setPen(pen)

paint.drawRect(50,50,20,100)

class Painterd1(QWidget):

def __init__(self):

super(Painterd1,self).__init__()

self.resize(200,100)

self.setWindowTitle(‘paint‘)

#使用画刷

def paintEvent(self, QPaintEvent):

paint=QPainter(self)

brush=QBrush(QColor(0,0,255),Qt.Dense4Pattern)#创建笔刷

paint.setBrush(brush)#使用笔刷

paint.drawEllipse(22,20,50,50)#椭圆

#设置纹理

brush.setTexture(QPixmap(r‘i/a.png‘))

#使用四个点绘制多边形

paint.drawPolygon(QPoint(150,100),QPoint(300,150),QPoint(350,250),QPoint(100,300))

def main():

app = QtGui.QApplication(sys.argv)

ex =Painterd1()

ex.show()

sys.exit(app.exec_())

if __name__ == ‘__main__‘:

main()

如图:

其他朋友做的例子,可以学习下:http://blog.csdn.net/cxm19830125/article/details/21733377

qt画刷和画笔

时间: 2024-09-28 16:36:43

qt画刷和画笔的相关文章

画笔与画刷

CBrush Brush, *pOldBrush; Brush.CreateSolidBrush(HS_BDIAGONAL, RGB(255, 0, 0)); pOldBrush = pDC ->SelectObject(&Brush);上面代码的本意是创建画刷,选入设备上下文:遗憾,在创建画刷时错了,参数的个数出了问题,这里和创建画笔不同,创建画笔时要定义三个参数:格式,宽度,颜色:而创建画刷只需定义颜色. 创建画刷,并对其进行自定义代码 CRect rect; GetClientRect

[游戏模版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+

计算机图形学(三)_图元的属性_4_线的属性_3_画笔或画刷的选择

画笔或画刷的选择 在有些图形软件包中,尤其是绘画系统,可以直接选择不同的画笔和画刷类型.这种类型的选项包括形状.尺寸和画笔或画刷的图案.图4.7给出了一些可能的画笔和画刷形状.这些形状可以按像素位置的数值形式存储在一个像素模板中,然后再设置到线路径上.例如,矩形画笔可用图4.8给出的模板,通过将模板的中心(或一角)沿线路径移动而实现,如图4.9所示.为了避免在帧缓存中重复设置像素,可以简单地累计在模板的每个位置上生成的水平段,并沿每一条扫描线跟踪起始和终止的x位置. 通过改变模板的尺寸,使用画笔

画布.画笔.画刷

canvas 画布 ­ pen 画笔 ­ brush  画刷 ­ 画布对象 ­ 1.moveto(x.y:integer);  开始点 ­ 2.lineto(x.y:integer);  线 ­ 3.rectangle(x1.x2.x2.x3);  方 ­ 4.ellipse(x.y.x1.y1);    圆 ­ 5.textout(x.y:ineger;text:string);  显示文本 ­ 画笔对象 ­ 1.color 颜色 ­ 2.width 宽度 ­ 3.style 风格 ­ sty

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

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

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

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

关于Qt画点及计算机专业基础课程介绍

在计算机图形图像学中,开始都是先画点,我曾经在汇编上tc2.0上画点,后来是MFC,VB,Qt,Python,我觉得对于计算机专业的选择QT的原因是它是个C系的功能强大庞大的库,可以少写很多代码,但是又不会过于屏蔽底层,这样在方便的写一些小例子能增强信心,在深入时候迫使使用者需要系统学习很多知识和走迷宫一般的耐心及毅力的锻炼. QT画点在网上资料很多,主要就是下面几步: //在绘制事件中使用QPainter中的API绘制 TestWidget::paintEvent(..) { QPainter

GDI+学习笔记(六)渐变画刷

画刷,顾名思义,就是像画刷一样,向设备上绘制,还记得小时候常唱的首歌,"我是一个粉刷匠.." 好吧,跑题了. 本系列博客希望尽可能简单的描述每项功能,而不希望把每个参数都介绍的详详细细,如果需要,请查阅msdn,本节讲述的渐变画刷,主要有两种,一种是叫线性画刷(LinearGradientBrush),还有一种叫路径画刷(PathGradientBrush),我希望以一种尽可能简单的方式去描述它,但能力有限,所以有什么意见,希望各位能帮忙提出,谢谢. (一)使用画刷 上一节中,我们实际

透明画刷的使用

透明画刷的使用代码部分 CRect rect; GetClientRect(rect); pDC ->SetMapMode(MM_ANISOTROPIC); pDC ->SetWindowExt(rect.Width(), rect.Height()); pDC ->SetViewportExt(rect.Width(), -rect.Height()); pDC ->SetViewportOrg(rect.Width()/2, rect.Height()/2); rect.Off