PySide6.QtGui.QPaintDevice

class QPaintDevice

QPaintDevice 类是可以用 QPainter 绘制的对象的基类。更多

Inherited by: QSvgGenerator, QOpenGLPaintDevice, QPicture, QPagedPaintDevice, QPrinter, QPixmap, QImage, QBitmap, QWidget, QWizardPage, QToolBar, QTabWidget, QTabBar, QStatusBar, QSplitterHandle, QSplashScreen, QSizeGrip, QRubberBand, QRhiWidget, QProgressBar, QMenuBar, QMenu, QMdiSubWindow, QMainWindow, QLineEdit, QKeySequenceEdit, QGroupBox, QFrame, QToolBox, QStackedWidget, QSplitter, QLabel, QLCDNumber, QAbstractScrollArea, QTextEdit, QTextBrowser, QScrollArea, QPlainTextEdit, QMdiArea, QGraphicsView, QAbstractItemView, QTreeView, QTreeWidget, QHelpContentWidget, QTableView, QTableWidget, QListView, QUndoView, QListWidget, QHelpIndexWidget, QHeaderView, QColumnView, QPdfView, QFocusFrame, QDockWidget, QDialogButtonBox, QDialog, QWizard, QProgressDialog, QMessageBox, QInputDialog, QFontDialog, QErrorMessage, QColorDialog, QPrintPreviewDialog, QPageSetupDialog, QAbstractPrintDialog, QPrintDialog, QComboBox, QFontComboBox, QCalendarWidget, QAbstractSpinBox, QSpinBox, QDoubleSpinBox, QDateTimeEdit, QTimeEdit, QDateEdit, QAbstractSlider, QSlider, QScrollBar, QDial, QAbstractButton, QToolButton, QRadioButton, QPushButton, QCommandLinkButton, QCheckBox, QSvgWidget, QQuickWidget, QPrintPreviewWidget, QPdfPageSelector, QOpenGLWidget, QVideoWidget, QHelpSearchResultWidget, QHelpSearchQueryWidget, QHelpFilterSettingsWidget, QDesignerWidgetBoxInterface, QDesignerPropertyEditorInterface, QDesignerObjectInspectorInterface, QDesignerFormWindowInterface, QDesignerActionEditorInterface, QPaintDeviceWindow, QOpenGLWindow, QRasterWindow, QPdfWriter, QFileDialog, QWebEngineView, QChartView

概要

方法

虚拟方法

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

绘图设备是一个二维空间的抽象,可以使用QPainter在其上进行绘制。其默认坐标系的原点位于左上角。X向右增加,Y向下增加。单位是一个像素。

QPaintDevice 的绘图功能目前由 QWidget、QImageQPixmapQPicture 和 QPrinter 子类实现。

要实现对新后端的支持,您必须从QPaintDevice派生,并重新实现虚拟函数paintEngine(),以告诉QPainter应该使用哪种绘图引擎在此特定设备上绘制。请注意,您还必须创建一个相应的绘图引擎以便能够在设备上绘制,即从QPaintEngine派生并重新实现其虚拟函数。

警告

Qt要求在创建任何绘图设备之前必须存在一个QGuiApplication对象。绘图设备访问窗口系统资源,而这些资源在应用程序对象创建之前不会被初始化。

QPaintDevice 类提供了几个函数来返回各种设备指标:depth() 函数返回其位深度(位平面数)。height() 函数返回其在默认坐标系单位中的高度(例如,QPixmap 和 QWidget 的像素),而 heightMM() 返回设备的高度(以毫米为单位)。同样,width()widthMM() 函数分别返回设备在默认坐标系单位和毫米中的宽度。或者,可以使用受保护的 metric() 函数,通过指定所需的 PaintDeviceMetric 作为参数来检索指标信息。

logicalDpiX()logicalDpiY() 函数返回设备的水平和垂直分辨率,单位为每英寸点数。physicalDpiX()physicalDpiY() 函数也返回设备的分辨率,单位为每英寸点数,但请注意,如果逻辑分辨率和物理分辨率不同,相应的 QPaintEngine 必须处理映射。最后,colorCount() 函数返回绘图设备可用的不同颜色数量。

class PaintDeviceMetric

描述绘图设备的各种指标。

常量

描述

QPaintDevice.PdmWidth

绘制设备的宽度,以默认坐标系单位表示(例如,QPixmap 和 QWidget 的像素)。另请参阅 width()

QPaintDevice.PdmHeight

绘画设备在默认坐标系单位中的高度(例如,QPixmap 和 QWidget 的像素)。另请参阅 height()

QPaintDevice.PdmWidthMM

绘画设备的宽度,以毫米为单位。另请参阅 widthMM()

QPaintDevice.PdmHeightMM

绘画设备的高度,以毫米为单位。另请参阅 heightMM()

QPaintDevice.PdmNumColors

绘图设备可用的不同颜色数量。另请参阅 colorCount()

QPaintDevice.PdmDepth

绘图设备的位深度(位平面数)。另请参阅 depth()

QPaintDevice.PdmDpiX

设备的水平分辨率,单位为每英寸点数。另请参阅 logicalDpiX()

QPaintDevice.PdmDpiY

设备的垂直分辨率,单位为每英寸点数。另请参阅 logicalDpiY()

QPaintDevice.PdmPhysicalDpiX

设备的水平分辨率,单位为每英寸点数。另请参阅 physicalDpiX()

QPaintDevice.PdmPhysicalDpiY

设备的垂直分辨率,单位为每英寸点数。另请参阅 physicalDpiY()

QPaintDevice.PdmDevicePixelRatio

设备的设备像素比。常见值为1用于普通dpi显示器,2用于高dpi“视网膜”显示器。

QPaintDevice.PdmDevicePixelRatioScaled

设备的缩放设备像素比。这与PdmDevicePixelRatio相同,只是该值通过一个常数因子进行缩放,以支持具有分数比例因子的绘制设备。使用的常数缩放因子是devicePixelRatioFScale()。此枚举值在Qt 5.6中引入。

QPaintDevice.PdmDevicePixelRatioF_EncodedA

此枚举项与相应的B项一起用于设备的设备像素比,作为一个编码的double浮点值。支持分数DPR值的QPaintDevice子类应在其重写的metric()函数中实现对这些枚举项的支持。返回值应为encodeMetricF()函数的结果。

QPaintDevice.PdmDevicePixelRatioF_EncodedB

参见 PdmDevicePixelRatioF_EncodedA。

PySide6.QtGui.QPaintDevice.painters
__init__()

构造一个绘图设备。此构造函数只能从QPaintDevice的子类中调用。

colorCount()
Return type:

整数

返回绘图设备可用的不同颜色的数量。如果可用颜色的数量太大,无法用int数据类型表示,则将返回INT_MAX。

depth()
Return type:

整数

返回绘图设备的位深度(位平面数)。

devType()
Return type:

整数

devicePixelRatio()
Return type:

浮点数

返回设备的设备像素比。

常见值为1用于普通dpi显示器,2用于高dpi“视网膜”显示器。

devicePixelRatioF()
Return type:

浮点数

返回设备的设备像素比,以浮点数表示。

static devicePixelRatioFScale()
Return type:

浮点数

static encodeMetricF(metric, value)
Parameters:
Return type:

整数

height()
Return type:

整数

返回绘画设备在默认坐标系单位中的高度(例如,QPixmap 和 QWidget 的像素)。

另请参阅

heightMM()

heightMM()
Return type:

整数

返回绘画设备的高度,单位为毫米。由于平台限制,可能无法使用此函数来确定屏幕上小部件的实际物理大小。

另请参阅

height()

initPainter(painter)
Parameters:

画家QPainter

logicalDpiX()
Return type:

整数

返回设备的水平分辨率,单位为每英寸点数,用于计算字体大小。对于X11,这通常与从widthMM()计算出的值相同。

请注意,如果logicalDpiX()不等于physicalDpiX(),相应的QPaintEngine必须处理分辨率映射。

logicalDpiY()
Return type:

整数

返回设备以每英寸点数表示的垂直分辨率,该分辨率用于计算字体大小。对于X11,这通常与从heightMM()计算出的值相同。

请注意,如果logicalDpiY()不等于physicalDpiY(),相应的QPaintEngine必须处理分辨率映射。

metric(metric)
Parameters:

metricPaintDeviceMetric

Return type:

整数

返回给定绘图设备的度量信息 metric

另请参阅

PaintDeviceMetric

abstract paintEngine()
Return type:

QPaintEngine

返回一个指向用于在设备上绘制的绘图引擎的指针。

paintingActive()
Return type:

布尔

如果设备当前正在被绘制,即有人调用了begin()但尚未为此设备调用end(),则返回true;否则返回false

另请参阅

isActive()

physicalDpiX()
Return type:

整数

返回设备的水平分辨率,单位为每英寸点数。例如,在打印时,此分辨率指的是物理打印机的分辨率。而逻辑DPI则指的是实际绘图引擎使用的分辨率。

请注意,如果physicalDpiX()不等于logicalDpiX(),相应的QPaintEngine必须处理分辨率映射。

physicalDpiY()
Return type:

整数

返回设备的水平分辨率,单位为每英寸点数。例如,在打印时,此分辨率指的是物理打印机的分辨率。而逻辑DPI则指的是实际绘图引擎使用的分辨率。

请注意,如果physicalDpiY()不等于logicalDpiY(),相应的QPaintEngine必须处理分辨率映射。

redirected(offset)
Parameters:

偏移量QPoint

Return type:

QPaintDevice

sharedPainter()
Return type:

QPainter

width()
Return type:

整数

返回绘图设备在默认坐标系单位中的宽度(例如,对于QPixmap和QWidget,单位为像素)。

另请参阅

widthMM()

widthMM()
Return type:

整数

返回绘画设备的宽度,单位为毫米。由于平台限制,可能无法使用此函数来确定屏幕上小部件的实际物理尺寸。

另请参阅

width()