没有合适的资源?快使用搜索试试~ 我知道了~
首页python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
353 浏览量
更新于2023-05-27
评论
收藏 75KB PDF 举报
主要介绍了python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析,需要的朋友可以参考下
资源详情
资源评论
资源推荐

python GUI库图形界面开发之库图形界面开发之PyQt5简单绘图板实例与代码分简单绘图板实例与代码分
析析
主要介绍了python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析,需要的朋友可以参考下
在PyQt中常用的图像类有四种,QPixmap,QImage,QPicture,QBitmap
类型类型 描述描述
QPixmap 专门为绘图设计的,在绘制图片时需要使用QPixmap
QImage 提供了一个与硬件无关的图像表示函数,可以用于图片像素级访问
QPicture
是一个绘图设备类,它继承自QPainter类,可以使用QPainter的begin()函数在QPicture上绘图,使用end()函
数结束绘图,使用QPicture的save()函数将QPainter所使用的绘图指令保存在文件中
QBitmap
是一个继承自QPixmap的简单类,它提供了1bit深度的二值图像的类,QBitmap提供的单色图像,可以用来制作游
标(QCursor),或者笔刷(QBrush)
简单绘图板实例简单绘图板实例
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QPainter, QPixmap
from PyQt5.QtCore import Qt, QPoint
class Winform(QWidget):
def __init__(self, parent=None):
super(Winform, self).__init__(parent)
#设置标题
self.setWindowTitle("绘图例子")
#实例化QPixmap类
self.pix = QPixmap()
#起点,终点
self.lastPoint = QPoint()
self.endPoint = QPoint()
#初始化
self.initUi()
def initUi(self):
# 窗口大小设置为600*500
self.resize(600, 500)
# 画布大小为400*400,背景为白色
self.pix = QPixmap(400, 400)
self.pix.fill(Qt.white)
def paintEvent(self, event):
pp = QPainter(self.pix)
# 根据鼠标指针前后两个位置绘制直线
pp.drawLine(self.lastPoint, self.endPoint)
# 让前一个坐标值等于后一个坐标值,
# 这样就能实现画出连续的线
self.lastPoint = self.endPoint
painter = QPainter(self)
#绘制画布到窗口指定位置处
painter.drawPixmap(0, 0, self.pix)
def mousePressEvent(self, event):
# 鼠标左键按下
if event.button() == Qt.LeftButton:
self.lastPoint = event.pos()
self.endPoint = self.lastPoint
def mouseMoveEvent(self, event):
# 鼠标左键按下的同时移动鼠标
if event.buttons() and Qt.LeftButton:
self.endPoint = event.pos()
# 进行重新绘制
self.update()
def mouseReleaseEvent(self, event):
# 鼠标左键释放
if event.button() == Qt.LeftButton:
self.endPoint = event.pos()















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0