博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PyQt5之窗口绘图类控件QPen
阅读量:3957 次
发布时间:2019-05-24

本文共 1614 字,大约阅读时间需要 5 分钟。

PyQt5之窗口绘图类控件QPen

QPen是一个基本的图形对象,用于绘制直线、曲线或者给轮廓画出矩形、椭圆形、多边形及其其他形状。

QPen的使用

import sys,mathfrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class Win(QWidget):    def __init__(self):        super().__init__()        self.setGeometry(300, 300,400, 300)        self.setWindowTitle('QPen的使用')    def paintEvent(self, event):        painter = QPainter()        painter.begin(self)        #自定义绘制方法        self.drawLines(painter)        painter.end()    def drawLines(self,painter):        pen = QPen(Qt.black,2,Qt.SolidLine)#设置画笔        painter.setPen(pen)        painter.drawLine(20,40,250,40)        pen.setStyle(Qt.DashLine)        painter.setPen(pen)        painter.drawLine(20,80,250,80)        pen.setStyle(Qt.DashDotLine)        painter.setPen(pen)        painter.drawLine(20, 120, 250, 120)        pen.setStyle(Qt.DotLine)        painter.setPen(pen)        painter.drawLine(20, 160, 250, 160)        pen.setStyle(Qt.DashDotDotLine)        painter.setPen(pen)        painter.drawLine(20, 200, 250, 200)        pen.setStyle(Qt.CustomDashLine)        pen.setDashPattern([1, 4, 5, 4])        painter.setPen(pen)        painter.drawLine(20, 240, 250, 240)if __name__ == "__main__":    app = QApplication(sys.argv)    form = Win()    form.show()    sys.exit(app.exec_())

代码分析: 在这个例子中,使用6种不同的线条样式绘制了6条线,其中前5条线使用的是预定义的线条样式,最后一条线使用自定义线条样式绘制。

  • pen = QPen(Qt.black,2,Qt.SolidLine)创建一个QPen对象,将颜色设置为黑色,宽度设置为2像素,Qt.SolidLine是预定义的线条之一;
  • 最后一条线,使用Qt.CustomDashLine创建线条样式,调用setDashPattern()方法使用数字列表定义样式。数字列表的个数必须是偶数,奇数位代表一段横线,偶数位代表两端横线之间的空余距离。本例中数字列表的含义是:1像素宽度的横线,4像素宽度的空余距离,5像素宽度的横线,4像素的空余距离。

运行效果如下:

在这里插入图片描述

转载地址:http://lvozi.baihongyu.com/

你可能感兴趣的文章
linux 技巧:使用 screen 管理你的远程会话
查看>>
同时装了Python3和Python2,怎么用pip?
查看>>
linux tar 解压缩zip文件报错的解决
查看>>
vim,ctag和Taglist
查看>>
Ubuntu的apt命令详解
查看>>
Ubuntu Server 设置sshd
查看>>
sort,uniq命令的使用。
查看>>
linux下md5加密(使用openssl库C实现)
查看>>
openssl、MD5的linux安装方法
查看>>
DevC++ 工程没有调试信息的解决办法
查看>>
http消息长度的确定
查看>>
手机和电脑如何连接蓝牙
查看>>
HTTP协议参数
查看>>
wireshark检索命令
查看>>
五人分鱼问题(附答案)
查看>>
linux查看文件有多少行
查看>>
error:previous declartion of "XXX" is here的解决方法
查看>>
sha1的几个函数的使用
查看>>
为什么int型的数组用memset不能清零(memset的使用规范)
查看>>
<转>CRC校验、MD5、SHA1算法的概念和可靠性现状
查看>>