2025年qpainter(Qpainterpath绘制特效图形)

qpainter(Qpainterpath绘制特效图形)在 PyQt 中常用的图像类有 4 个 即 QPixmap QImage QPicture 和 QBitmap 是专门为绘图而设计的 在绘制图片时需要使用 QPixmap 提供了一个与硬件无关的图像表示函数 可以用于图片的像素级访问 是一个绘图设备类 它继承自 QPainter 类 可以使用 QPainter 的 begin 函数在 QPicture 上绘图 使用 end 函数结束绘图

大家好,我是讯享网,很高兴认识大家。



在PyQt中常用的图像类有4个,即QPixmap、QImage、QPicture和QBitmap。

  • 是专门为绘图而设计的,在绘制图片时需要使用QPixmap;
  • 提供了一个与硬件无关的图像表示函数,可以用于图片的像素级访问;
  • 是一个绘图设备类,它继承自QPainter类,可以使用QPainter的begin()函数在QPicture上绘图,使用end()函数结束绘图,使用QPicture的save()函数将QPainter所使用过的绘图指令保存到文件中;
  • 是一个继承自QPixmap的简单类,它提供了1bit深度的二值图像的类,QBitmap提供的单色图像可以用来制作游标(QCursor)或者笔刷(QBrush)。

运行效果如下:

pyqt5opencv图像处理界面设计_pyqt5opencv图像处理界面设计
讯享网

注:在重构mouseMoveEvent函数时,buttons()函数可以获取鼠标指针移动过程中按下的所有按键,然后用Qt.LeftButton来判断是否按下了左键,必须使用该函数来判断按下鼠标的按键。

  1. 绘制矩形,出现重影:

运行效果如下:

pyqt5opencv图像处理界面设计_双缓冲_02

注:其实,在拖动鼠标的过程中屏幕已经刷新了很多次,即paintEvent函数执行了很多次,每执行一次就会绘制一个矩形,拖动速度越快,重影越少。

  1. 使用双缓冲技术绘制矩形,避免出现重影:

运行效果如下:

pyqt5opencv图像处理界面设计_python_03

双缓冲技术总结:
在这个例子中,要实现使用鼠标在界面上绘制一个任意大小的矩形而不出现重影,需要两个画布,其中一个作为临时缓冲区。为了在绘制时不出现重影,而且保证以前绘制的内容不消失,那么每一次绘制都是在原来的图形上进行的,所以需要绘制在辅助画布之前,先将pix的内容复制到辅助画布上。

小讯
上一篇 2025-06-06 08:31
下一篇 2025-04-25 21:16

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/188646.html