小渣渣学习笔记 python day46【 PyQt5 画直线,画图形,画图片,画文字】
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了小渣渣学习笔记 python day46【 PyQt5 画直线,画图形,画图片,画文字】,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3956字,纯文字阅读大概需要6分钟。
内容图文
#绘制各种图形 #弧形 #椭圆 #圆 #矩形 #多边形 #绘制图像
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import math
class DrawAll(QWidget):
def __init__(self):
super(DrawAll,self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('绘制各种图形')
self.resize(500,800)
def paintEvent(self, QPaintEvent):
painter = QPainter(self)
painter.begin(self)
painter.setPen(Qt.blue)
rect = QRect(0,10,100,100)
painter.drawArc(rect,0,50*16) #画弧
painter.setPen(Qt.red)
painter.drawArc(120,10,100,100,0,360*16) #画圆
painter.drawChord(0,120,100,100,0,50*16) #画弦 0-50度
painter.drawPie(120,120,100,100,15*16,130*16) #画扇形,右起15度到130度
painter.drawEllipse(10,240,150,100) #椭圆 10 240是左上角 ,150的宽度和100的高度
point1 = QPoint(140,380)
point2 = QPoint(270,420)
point3 = QPoint(290,512)
point4 = QPoint(290,588)
point5 = QPoint(200,533)
polygon = QPolygon([point1,point2,point3,point4,point5])
painter.drawPolygon(polygon) #多边形
image = QImage('./python.jpg')#装载图像 QImage
rect = QRect(10,600,image.width()/3,image.height()/3)
painter.drawImage(rect,image)
#画个表盘
painter.drawArc(300,100,100,100,0,360*16)
pointX = 350
pointY= 150
r = 50
for i in range(1,13):
x1 = pointX - math.cos(i*30/180*math.pi)*50
y1 = pointY - math.sin(i*30/180*math.pi)*50
x2 = pointX - math.cos(i * 30 / 180 * math.pi)*9/10*50
y2 = pointY - math.sin(i * 30 / 180 * math.pi)*9/10*50
painter.drawLine(x1,y1,x2,y2)
painter.end()
if __name__ == '__main__':
app = QApplication(sys.argv)
main = DrawAll()
main.show()
sys.exit(app.exec_())
#绘制直线
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import math
class DrawLines(QWidget):
def __init__(self):
super(DrawLines,self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('画直线')
self.resize(300,200)
def paintEvent(self, QPaintEvent):
painter = QPainter(self)
painter.begin(self)
pen = QPen(Qt.red,3,Qt.SolidLine)
painter.setPen(pen)
painter.drawLine(20,40,250,40)
pen.setStyle(Qt.DashLine)
painter.setPen(pen)
painter.drawLine(20,50,250,50)
pen.setStyle(Qt.DashDotDotLine)
painter.setPen(pen)
painter.drawLine(20, 60, 250, 60)
pen.setStyle(Qt.DotLine)
painter.setPen(pen)
painter.drawLine(20, 70, 250, 70)
pen.setStyle(Qt.CustomDashLine) #自定义线类型
pen.setDashPattern([1,4,8,4]) #分别代表 长度1 ,间隔1,长度2,间隔2,循环
painter.setPen(pen)
painter.drawLine(20, 80, 250, 80)
painter.end()
if __name__ == '__main__':
app = QApplication(sys.argv)
main = DrawLines()
main.show()
sys.exit(app.exec_())
#用像素点绘制正弦曲线
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import math
class DrawPoints(QWidget):
def __init__(self):
super(DrawPoints,self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('窗口上用像素点绘制正弦曲线')
self.resize(300,200)
def paintEvent(self, QPaintEvent):
painter = QPainter(self)
painter.begin(self)
size = self.size()
num =10000
for i in range(num):
x = (size.width()-100)/2.0+100.0*i/num #变量是i 用i 来表示x 和 y ,这里给他限定一个周期的正弦曲线占用100宽和100高的空间
y = size.height()/2.0-50*math.sin(math.pi*2.0*i/num)
painter.drawPoint(x,y)
painter.end()
if __name__ == '__main__':
app = QApplication(sys.argv)
main = DrawPoints()
main.show()
sys.exit(app.exec_())
#QPainter 绘制文字
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
class QPainterDemo(QWidget):
def __init__(self):
super(QPainterDemo,self).__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('QPainter Demo')
self.resize(300,200)
self.text = 'hello world'
def paintEvent(self, event): #重写paintEvent方法 窗口改变,就会不断调用这个方法
painter = QPainter() #创建QPainter对象
painter.begin(self) #开始 加参数
painter.setPen(QColor(150,43,5)) #设置画笔
painter.setFont(QFont('Arial',20))#设置字体
painter.drawText(event.rect(),Qt.AlignCenter,self.text)
painter.end() #结束
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QPainterDemo()
main.show()
sys.exit(app.exec_())
内容总结
以上是互联网集市为您收集整理的小渣渣学习笔记 python day46【 PyQt5 画直线,画图形,画图片,画文字】全部内容,希望文章能够帮你解决小渣渣学习笔记 python day46【 PyQt5 画直线,画图形,画图片,画文字】所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。