python自绘界面_拥有漂亮的笔刷才能绘制多彩界面,PythonPyQt5中QPen和QBrush类

前面内容,我们详细了解了PyQt5的一些常见控件及QPainter类的使用

Python用PyQt5绘制多彩随机散点图,基本控件之QPainter使用详解

Python用PyQt5制作颜色对话框,PyQt图形界面编程之QColorDialog

Qt图形界面编程之QFileDialog类,Python用PyQt5制作文件对话框

Qt图形界面编程之QFileDialog类,Python用PyQt5制作文件对话框

如何通过Qt界面设置字体属性,Python中PyQt5的QFontDialog类详解

今天,我们详细了解一下QPainter类相关的另外两个类:QPen类和QBrush类

今天学习画笔类

01QPen介绍

顾名思义,QPen就是一个类似画笔的对象,它可以对我们绘制图形的轮廓及形状进行精准设置和定义。

定义如下

对于QPen对象的创建,文档中有下面几种方式

QPen()

QPen(Qt.PenStyle)

QPen(Union[QBrush, QColor, Qt.GlobalColor, QGradient], float, style: Qt.PenStyle = Qt.SolidLine, cap: Qt.PenCapStyle = Qt.SquareCap, join: Qt.PenJoinStyle = Qt.BevelJoin)

QPen(Union[QPen, QColor, Qt.GlobalColor, QGradient])

QPen(Any)

可以在定义时,不加任何参数直接创建,也可以在初始定义时加上具体的参数,来构建不同样式的QPen实例。可以尝试使用help(XXX)查看对于XXX的具体帮助信息,这里不再赘述,大家参照学习。

留给大家自行参考学习咯

02QPen应用实例

上一篇内容,我们讲了关于线条的一些样式,一些小伙伴说,没有第6种样式。今天,我们来试试看,使用定义好的QPen来绘制不同的线条样式。

绘制线条样式并写字

效果如下所示

线条样式演示

绘制图形和文字要注意控制好位置。

03QBrush类介绍及实例

与QPen类不同的是,QBrush类似一个笔刷,向控件中大量填充背景样式时,使用这个类很方便,它不仅可以填充颜色,还可以为控件填充一定的图形样式。常用三种类型填充方式:预定义、渐变和纹理。我们通过下面例子来展示其基本用法。

笔刷定义的纹理和渐变色也很漂亮哦

这个例子选自官方文档,我们对文档进行了部分修改,添加了每一个填充效果的文字说明,并对文档进行了放大处理,先来看下效果。

实现效果展示

我们附上源代码供大家练习,如下:

类的初始化

定义QBrush实例并绘图

剩余代码

好了,今天的内容就到这里了,喜欢Python编程的小伙伴欢迎关注我,后续会推出更加精彩的内容哦

转载请注明出处,百家号:Python高手养成

PyQt5Python语言的GUI编程工具包,其包含了QPainter,可以用来绘制各种图形。下面是一些常见的图形及其绘制方法: 1. 直线 ```python from PyQt5.QtGui import QPainter, QPen from PyQt5.QtCore import Qt pen = QPen(Qt.black, 2, Qt.SolidLine) painter = QPainter() painter.begin(self) painter.setPen(pen) painter.drawLine(0, 0, 100, 100) painter.end() ``` 2. 矩形 ```python from PyQt5.QtGui import QPainter, QPen, QBrush from PyQt5.QtCore import Qt pen = QPen(Qt.black, 2, Qt.SolidLine) brush = QBrush(Qt.gray) painter = QPainter() painter.begin(self) painter.setPen(pen) painter.setBrush(brush) painter.drawRect(0, 0, 100, 100) painter.end() ``` 3. 圆形 ```python from PyQt5.QtGui import QPainter, QPen, QBrush from PyQt5.QtCore import Qt pen = QPen(Qt.black, 2, Qt.SolidLine) brush = QBrush(Qt.gray) painter = QPainter() painter.begin(self) painter.setPen(pen) painter.setBrush(brush) painter.drawEllipse(0, 0, 100, 100) painter.end() ``` 4. 文字 ```python from PyQt5.QtGui import QPainter, QFont from PyQt5.QtCore import Qt font = QFont("Arial", 16) painter = QPainter() painter.begin(self) painter.setFont(font) painter.drawText(0, 0, "Hello PyQt5") painter.end() ``` 5. 多边形 ```python from PyQt5.QtGui import QPainter, QPen, QBrush from PyQt5.QtCore import Qt, QPoint pen = QPen(Qt.black, 2, Qt.SolidLine) brush = QBrush(Qt.gray) painter = QPainter() painter.begin(self) painter.setPen(pen) painter.setBrush(brush) points = [QPoint(0, 0), QPoint(50, 50), QPoint(100, 0)] painter.drawPolygon(points) painter.end() ``` 以上只是一些常见的图形,QPainter还支持更多的绘制方法,比如曲线、扇形等等,具体可以参考官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值