qpython 画图_PyQt5利用QPainter绘制各种图形的实例

本文介绍如何在PyQt5中使用QPainter绘制各种图形,包括线条、矩形、椭圆、多边形等,并展示了具体的代码实现。通过实例详细讲解了绘制过程中的关键点,如设置笔刷、笔帽、连接样式等。
摘要由CSDN通过智能技术生成

这个例子我做了好几天:

1)官网C++的源码,改写成PyQt5版本的代码,好多细节不会转化

2)网上的PyQt的例子根本运行不了

填了无数个坑,结合二者,终于能完成了一个关于绘图的东西。这个过程也掌握了很多新的知识点

【知识点】

1、关于多个点的使用

poitns = [QPoint(10, 80), QPoint(20, 10), QPoint(80, 30), QPoint(90, 70)]

请看:

# 定义多个点

points = [QPoint(10, 80), QPoint(20, 10), QPoint(80, 30), QPoint(90, 70)]

# ===直接使用 points 会报错!=========

# ...

elif self.shape == self.Points:

painter.drawPoints(points)

elif self.shape == self.Polyline:

painter.drawPolyline(points)

elif self.shape == self.Polygon:

painter.drawPolygon(points, 4)

# ...

# ===把 points 用 QPolygon()包裹起来才正确!=========

# ...

elif self.shape == self.Points:

painter.drawPoints(QPolygon(points))

elif self.shape == self.Polyline:

painter.drawPolyline(QPolygon(points))

elif self.shape == self.Polygon:

painter.drawPolygon(QPolygon(points), 4)

# ...

2、在QDialog窗体中显示QWidget部件

【效果图】

【资源】

//img.jbzj.com/file_images/article/201710/brick.png//img.jbzj.com/file_images/article/201710/qt-logo.png

【代码】

import sys

from PyQt5.QtCore import *

from PyQt5.QtGui import *

from PyQt5.QtWidgets import *

class StockDialog(QWidget):

def __init__(self, parent=None):

super(StockDialog, self).__init__(parent)

self.setWindowTitle("利用QPainter绘制各种图形")

mainSplitter = QSplitter(Qt.Horizontal)

mainSplitter.setOpaqueResize(True)

frame = QFrame(mainSplitter)

mainLayout = QGridLayout(frame)

#mainLayout.setMargin(10)

mainLayout.setSpacing(6)

label1=QLabel("形状:")

label2=QLabel("画笔线宽:")

label3=QLabel("画笔颜色:")

label4=QLabel("画笔风格:")

label5=QLabel("画笔顶端:")

label6=QLabel("画笔连接点:")

label7=QLabel("画刷风格:")

label8=QLabel("画刷颜色:")

self.shapeComboBox = QComboBox()

self.shapeComboBox.addItem("Line", "Line")

self.shapeComboBox.addItem("Rectangle", "Rectangle")

self.shapeComboBox.addItem('Rounded Rectangle','Rounded Rectangle')

self.shapeComboBox.addItem('Ellipse','Ellipse')

sel

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值