首页
学习
活动
专区
圈层
工具
发布

小白白也能学会的 PyQt 教程 —— 图像类及图像相关基础类介绍

其中,常用的图像类包括QPixmap、QImage和QIcon。QPixmap和QImage提供了基本的图像处理功能,可以加载、保存、缩放、剪裁和绘制图像。...QPainter:用于绘制图形和图像的类。它提供了各种绘制图形元素的方法,如绘制直线、矩形、椭圆、文本等。QGraphicsView:用于显示和交互大型图形场景的类。...下面是图像显示的后果,可以看到,QGraphicsView与QLabel 在显示图像时还是有一些区别的,我们从图中能看到的就比如QGraphics有一个滚动条,而QLabel没有;这主要是因为QGraphicsView...,有特殊需求的小伙伴可以看一下:① 使用QPainter绘制图像:from PyQt5.QtCore import Qtfrom PyQt5.QtWidgets import QApplication,...QWidgetfrom PyQt5.QtGui import QImage, QPainterapp = QApplication([])window = QWidget()image = QImage

4.2K40

QT学习笔记15绘图和绘图设备

QPainter)在不同的设备上进行绘制的统一的接口。...QPaintDevice有很多子类,比如QImage,以及QWidget。注意回忆一下,QPaintDevice可以理解成要在哪里去绘制,而现在我们希望画在这个组件,因此传入的是 this 指针。...QPainter有很多以 draw 开头的函数,用于各种图形的绘制,比如这里的drawLine(),drawRect()以及drawEllipse()等。...QPixmap使用底层平台的绘制系统进行绘制,无法提供像素级别的操作,而QImage则是使用独立于硬件的绘制系统,实际上是自己绘制自己,因此提供了像素级别的操作,并且能够在不同系统之上提供一个一致的显示形式...QPicture是平台无关的,因此它可以使用在多种设备之上,比如svg、pdf、ps、打印机或者屏幕。回忆下我们这里所说的QPaintDevice,实际上是说可以有QPainter绘制的对象。

2.1K11
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    28.QT-QPainter介绍

    介绍 可以在QPaintDevice类上绘制各种图形 QPaintDevice类表示QPainter的绘图设备(画布) QpaintDevice子类有QImage、QOpenGLPaintDevice、...QWidget 等 所以, QPainter可以在QImage、QOpenGLPaintDevice、QWidget上进行绘制图形 QPainter只能在类对象的paintEvent()函数中绘制图形...QPainter类的成员角色有: QPen         : 用于绘制几何图形的边缘,由颜色,宽度,线风格等参数组成 QBrush     : 用于填充几何图形的调色板,由颜色和填充风格组成 QFont...       : 用于文本绘制 QPixmap  : 绘制图片,可以加速显示,带有屏幕截图,窗口截图等支持,适合小图片 QImage    : 绘制图片,可以直接读取图像文件进行像素访问,适合大图片 QBitmap...painter.setRenderHint(QPainter:: Antialiasing, true); //设置渲染,启动反锯齿 painter.drawArc(rect,30*16,150*16); //绘画角度为

    2.1K20

    Qt5实战第五篇:图形与绘图

    概述Qt5 提供了强大的二维图形绘制功能,通过 QPainter 类,开发者可以在窗口部件或其他绘制设备上进行绘图。...基本绘图概念绘制设备:QWidget、QPixmap、QBitmap、QImage、QPicture、QPrintDevice 等。...QPainter 类QPainter 类是 Qt 绘图的核心类,提供了丰富的绘图方法,如绘制线条、矩形、多边形、椭圆等。它还支持绘制文本、图像和矢量图形(如 SVG)。...矢量图形Qt 支持使用 QPainterPath 类进行矢量图形绘制。QPainterPath 可以存储一系列的图形绘制命令,然后一次性绘制出来,非常适合绘制复杂的图形。...图像处理Qt 提供了 QImage 和 QPixmap 类来处理图像。QImage 提供了对图像像素级别的访问,而 QPixmap 则用于在屏幕上进行高效的图像绘制。

    1K11

    《突破控件限制:用Qt绘图API解锁高级界面定制能力》

    像咱们之前用过的 QWidget 也是一种 QPaintDevice (QWidget 是 QPaintDevice 的子类)....主动调用 repaint() 或者 update() 方法(这两个方法都是 QWidget 的方法)。 二、绘制各种形状 1....设置画笔 QPainter 在绘制时,是有一个默认的画笔的。在使用时也可以自定义画笔。在 Qt 中,QPen 类中定义了 QPainter 应该如何绘制形状、线条和轮廓。...QImage QImage 的核心特性: 使用 QPainter 直接在上面进行绘制图形。 通过文件路径加载并显示图片。 能够针对图片进行像素级别的操作(操作某个指定的像素)。...【QImage 作为绘图设备的使用】 Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) {

    73810

    【Qt中的画图设备 QPixmap QImage QBitmap(黑白色) QPicture QWidget】各自的特性和使用场景,相同点及不同点

    以下是 QPixmap、QImage、QBitmap、QPicture 和 QWidget 的特性、使用场景、相同点和不同点的描述: QPixmap 特性:轻量级的图像类,用于显示和处理光栅图形。...QPicture 特性:包含一系列图形指令的序列,可以多次重放这些指令来绘制图像。 使用场景:当需要保存绘图操作并在不同场合重复使用时使用,如自定义图形的绘制。...主要功能:支持复杂图形的记录和重放,可以无损缩放。 QWidget 特性:QWidget 是所有用户界面对象的基类,提供了基本的绘图功能。 使用场景:用于创建自定义的UI组件或窗口。...都可以通过 QPainter 进行绘制操作。 不同点 存储方式:QPixmap 和 QImage 存储图像数据,QPicture 存储绘图指令,QWidget 是一个窗口部件。...性能:QPixmap 适合快速显示,QImage 适合像素级编辑,QPicture 适合无损缩放,QWidget 适合交互式用户界面。

    9910

    使用QT显示OpenCV读取的图片

    其中QImageShowWidget就是用于显示图像的控件,它是继承于QWidget实现的,可以将其嵌入QMainWindow的centralwidget中: ?...QImageShowWidget是自定义的显示组件,可以首先在QtCreator的设计师界面拖入一个QWidget,再通过“窗口部件提升”功能提升为QImageShowWidget。 2.1....解析 所有基于QWidget的类都可以重新实现界面重绘事件paintEvent(),它会在界面需要的时候(例如调用update())自动重绘。...在这个事件函数中可以通过图形绘制接口QPainter绘制: QImage::Format imgFomat = QImage::Format_RGB888; QPainter painter(this...QPixmap::fromImage(qImg)); 可以看到QPainter绘制的其实是QImage对象,也就是重点是构造QImage这个对象。

    4.7K10

    【从零开始的Qt开发指南】(二十四)Qt 界面优化之绘图实战:解锁自定义界面的无限可能

    ,即 “画在哪里”,如 QWidget、QPixmap、QImage 等 QPen 画笔 控制线条的样式,包括颜色、宽度、线型(实线、虚线等) QBrush 画刷 控制封闭区域的填充效果,包括纯色、渐变...三、绘制图片:加载、平移、缩放与旋转 Qt 提供了 QPixmap、QImage 等类处理图片,其中 QPixmap 专门用于屏幕显示优化,是绘图中加载和显示图片的首选。...五、特殊的绘图设备:QPixmap、QImage、QPicture 除了 QWidget,Qt 还提供了三种特殊的绘图设备,分别适用于不同场景: QPixmap:优化屏幕显示,适合绘制到控件上...5.2 QImage:像素级操作 QImage 是独立于硬件的绘图设备,支持直接访问和修改像素,适合图片处理场景。其核心特性: 支持像素级操作(setPixel方法)。...示例 1:使用 QImage 绘制图形并保存 Widget::Widget(QWidget *parent) : QWidget(parent) { // 1.

    32010

    【Qt源码笔记】深谈 Qt 绘制

    所有的表层绘制都要经过绘制引擎来向下传递绘制信息。这是 Qt 作为一个高级框架的闪光点,在其他的 Qt 模块也有类似发现,比如控件的绘制上。...当时是在研究QWidget的绘制过程中,走到了这里。只看代码很难体验它的神奇之处。 pd 在前边是 QWidget 的一个指针,当经过这个 if 语句之后,pd 就变成了一个 QImage 指针。...对于稍微对 Qt 源码有一些理解的同学对 detach() 并不陌生,它本是 Qt 中最常用的 Copy-on-Write 的实现。不过经常用于在类的成员方法中调用,今天看到它这种用法着实惊艳到了。...至于为什么这种用法可行,这也是一个可研究的点,有时间,将其整理出来。这段代码算是研究绘制过程中的一个小礼物,这也解开了QWidget绘制的本质。...至于QWidget的绘制,也是一个很有意思的东西了,以后有机会详细整理一下。 附注 之前我说QRasterPaintEngine只是QPaintEngine的派生类。

    2.5K50

    QT实现机器视觉最常用的图像查看器(源码)

    效果展示: 1、实现思路 首先介绍一下实现的大体思路,常见图像查看器的实现思路有两种,分别是 使用QWidget和QLabel相结合的方式。...在网上的一段对三者的描述非常好: Scene就好比天空,无限大,而Item就是天空中的云朵,可以有很多云,而view就好比一扇窗户,透过窗户可以看到天空中的云,而一片天空可以通过很多扇窗户去看。...三者的关系就如上图所示。 3、如何使用QGraphics 理解了思想,QT有现成的视图类,我们直接调用即可。...); 运行效果如下: 效果并不是我们预想的那样,有几个问题: 背景颜色不是我们想要的黑白格或者是任何其它样式,但实际上背景是可以自定义绘制的 图像元素的尺寸没有放大适配我们的窗口界面 双击窗口界面,图像元素不能居中显示...所以想实现我们文章开头的预期效果,并不是这么几行就可以搞定的,我们需要重写QGraphicsView类,实现我们预期的自定义功能,例如双击鼠标事件,背景绘制等等。

    1.8K10

    Qt 之图形(QPainter 的基本绘图)「建议收藏」

    QPainter 用于执行绘图操作,其提供的 API 在 GUI 或 QImage、QOpenGLPaintDevice、QWidget 和QPaintDevice 显示图形(线、形状、渐变等)、文本和图像...例如,绘制矩形图形时,为了将对象绘制到 QWidget、QGLPixelBuffer、QImage、QPixmap、QPicture 等多种界面中间,必须使用 QPaintDevice。...它有起始角度和跨度,还有位置矩形,所以,要想画出自己想要的弧线,就需要大概估算出各个参数的预估值。...painter.drawPolygon(points, 4); } 首先,我们定义一个个坐标点的位置,这里有四个点,分别为:QPointF(30, 40)、QPointF(60, 150)、QPointF...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    7.3K42

    Flutter 绘制番外篇 - 数学中的角度知识

    另一方面,是为了让一些重要的知识有个 好的归宿。普通文章就像昙花一现,不管多美丽,终会被时间泯灭。...Flutter 中的 Offset 对象有 direction 属性,它是通过 atan2 反正切函数进行计算的。...其实很简单,我们已经知道了角度值,通过 canvas.drawArc 就可以根据先的角度绘制圆弧。...绘制箭头 如下,是绘制箭头的案例:界面上所展现的,是Line#paint 方法绘制的内容,只要通过两个点所提供的信息,绘制出箭头即可。绘制逻辑是:先画一个水平箭头,再根据旋转角度,绕 p0 旋转。...求 p1’ 的坐标,可以构建 p2,p1 线段,让该线段执行旋转逻辑,其 end 坐标即是 p1’。 思路有了,下面来看一下代码的实现。

    1.1K20

    Qt官方示例-文本对象

    文档的布局使用文本对象来布局和渲染(绘制)文档。每个对象都知道如何绘制它们控制的元素,并计算其大小。   为了能够在文本文档中插入SVG图像,我们创建了一个文本对象,并对该对象进行绘画。...我们还将文本对象注册到文档的布局中,从而使其能够绘制受文本对象控制的QTextCharFormat。我们可以通过以下步骤总结该过程: 实现文本对象。 用文本文档的布局注册文本对象。...所述intrinsicSize和drawObject函数然后用来计算文本对象的大小和绘制。...注意,我们已经在QImage上绘制了SVG图像。这是因为SVG渲染非常耗时。如果我们每次都使用QSvgRenderer绘制大型图像,该示例将严重滞后卡顿。..., bufferedImage); }   在drawObject()中,我们使用布局提供的QPainter绘制SVG图像。

    2K10

    【QT】绘图

    ,可以允许我们绘制各种图形 QPaintDevice 描述QPainter把图形画到哪个对象上 QPen 描述QPainter画出来的线 QBrush 描述QPainter填充一个区域 一般绘图API...、所绘制矩形的高 painter.drawRect(20,20,200,50); (3)圆形 //从左到右参数依次是圆心坐标,离圆心的x距离,离圆心的y距离 painter.drawEllipse(QPoint...map.save("C:\\Users\\14725\\Desktop\\map.png"); (2)QImage //设置画布大小以及绘图格式,绘图格式可在Qt助手中查看 QImage img(600,600...,不能加载其他的文件 要使用begin和end配套,首先使用begin将QPicture实例作为参数传递进去,告诉系统开始记录,记录完毕后用end结束 Widget::Widget(QWidget *parent...) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); QPicture picture;

    47010

    【QT】QT事件处理

    事件处理 QT中,事件作为一个对象,继承自QEvent类,常见的有键盘事件QKeyEvent、鼠标事件QMouseEvent和定时器事件QTimerEvent等。...每个程序的main函数最后都会调用QApplication类的exec()函数,它会使QT应用程序进入到事件循环,使应用程序在运行的时候接收各种事件。...一旦有事件发生,QT便会构造一个相应的QEvent子类的对象来表示它,然后将它传递给QObject对象或子对象。 ---- 鼠标事件 对鼠标实现进行重写来实现你想要达到的功能。...m_startY:m_startY+m_step; } } drawPix();//根据调整后的图标位置重新在m_pix上绘制图像 update();//触发窗口重绘 }...m_image1; QImage m_image2; QImage m_image3; }; #endif // DIALOG_H dialog.cpp #include "dialog.h

    2.1K10

    QT-解决无边框界面拖动卡屏问题(附带源码)

    那是因为你每次拖动的过程中都一直在调用move()函数让QT重新绘制界面,如果资源过大,就会导致当前图形还未绘制完,便又重新改变坐标了,从而导致花屏. 2.如何解决 我们参考其它软件,比如QQ,浏览器等...解决的过程有两种方法: 1) 调用win库来实现 2) 自己动手写一个 既然我们已经知道它的实现过程.那我们还是自己动手写一个,只需要写一个虚线框类即可 3.虚线框类代码 DragShadow.h #ifndef...DRAGSHADOW_H #define DRAGSHADOW_H #include class DragShadow : public QWidget {   Q_OBJECT private...:   QImage m_image; protected:   bool getInvertColor(int x, int y, QColor &color);   void paintEvent(...QPaintEvent *);   void showEvent( QShowEvent * event ); public:   explicit DragShadow(QWidget *parent

    2.9K20

    Qt音视频开发44-实时人脸框

    ,人脸框的数据主要是四个参数,左上角和右下角的位置,也可以说是x、y、width、height,可能有些做的比较好的还有倾斜角度,这个意义不是很大,人脸识别的速度一般都是飞快的,就算你用学习上用的opencv...做识别也是非常快的,基本上都是毫秒级的响应,主要的耗时操作在特征值的提取,所以一般要求能够响应每个通道每秒钟25帧-30帧的画面绘制+人脸框的绘制,当然人脸框的数据可能会有多个。...用Qt来绘制人脸框,核心就是一个函数,调用QPainter的drawRect方法,传入区域即可,如果花哨点的话还可以设置边框的粗细和颜色、圆角角度等,注意圆角角度使用的是drawRoundedRect而不是...近期接触的项目对人脸框的要求越来越多,之前是让用户自己拿到图片来绘制,近期索性直接将这个功能内置到视频控件中(视频控件封装了多种内核版本,有ffmpeg、vlc、mpv、海康sdk等),提供了可设置边框粗细...总体测试下来速度非常快,可以忽略,采用的QOPenGLWidget绘制的实时图像,也支持人脸框的绘制。 二、功能特点 支持的功能包括人脸识别、人脸比对、人脸搜索、活体检测等。

    1.4K01
    领券