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, QAbstract3DGraph, Q3DSurface, Q3DScatter, Q3DBars, 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对象。绘图设备访问窗口系统资源,而这些资源在创建应用程序对象之前尚未初始化。

《code class="xref py py-class docutils literal notranslate">QPaintDevice`类提供了一些返回各种设备度量值的功能:`depth()`函数返回其位深度(位数平面数)。`height()`函数返回其在默认坐标系单位中的高度(例如,对于QPixmap和QWidget)而`heightMM()`返回设备高度(毫米)。类似地,`width()`和`widthMM()`函数分别返回设备宽度默认坐标系单位以及毫米。或者,您可以使用受保护的函数`metric()`,通过指定所需的PaintDeviceMetric作为参数来获取度量信息。

《logicalDpiX()`》和《logicalDpiY()`》函数返回设备以点每英寸(dpi)为单位横向和纵向的分辨率。《physicalDpiX()`》和《physicalDpiY()`》函数同样也返回设备以点每英寸(dpi)为单位的分辨率,但请注意,如果逻辑分辨率和物理分辨率不同,相应的《QPaintEngine》必须处理映射。最后,《colorCount()`》函数返回可用于绘制设备的不同颜色数量。

参见

QPaintEngine《QPainter》坐标系统绘制系统

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

设备以点每英寸(dpi)为单位横向的分辨率。也参见《logicalDpiX()`》。

QPaintDevice.PdmDpiY

设备每英寸点数(dpi)的垂直分辨率。也请参考logicalDpiY() .

QPaintDevice.PdmPhysicalDpiX

设备每英寸点数的水平分辨率。也请参考physicalDpiX() .

QPaintDevice.PdmPhysicalDpiY

设备每英寸点数的垂直分辨率。也请参考physicalDpiY() .

QPaintDevice.PdmDevicePixelRatio

设备的设备像素比率。常见的值是1,用于常规dpi显示器,以及2用于高dpi的“视网膜”显示器。

QPaintDevice.PdmDevicePixelRatioScaled

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

PySide6.QtGui.QPaintDevice.painters#
__init__()#

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

colorCount()#
返回类型:

int

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

depth()#
返回类型:

int

返回绘图设备的光栅深度(比特面数量)。

devType()#
返回类型:

int

devicePixelRatio()#
返回类型:

float

返回设备的设备像素比率。

常见值是1,用于常规dpi显示器,以及2用于高dpi的“视网膜”显示器。

devicePixelRatioF()#
返回类型:

float

以浮点数形式返回设备的设备像素比率。

静态devicePixelRatioFScale()#
返回类型:

float

height()#
返回类型:

int

返回画图设备在默认坐标系单位(例如对于 QPixmap 和 QWidget)的高度。

参见

heightMM()

heightMM()#
返回类型:

int

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

参见

height()

initPainter(painter)#
参数:

painterQPainter

logicalDpiX()#
返回类型:

int

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

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

logicalDpiY()#
返回类型:

int

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

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

metric(metric)#
参数:

metricPaintDeviceMetric

返回类型:

int

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

摘要 paintEngine()#
返回类型:

QPaintEngine

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

paintingActive()#
返回类型:

bool

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

参见

isActive()

physicalDpiX()#
返回类型:

int

返回设备每英寸点的水平分辨率。例如,在打印时,此分辨率指物理打印机的分辨率。另一方面,逻辑DPI是指实际绘图引擎使用的分辨率。

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

physicalDpiY()#
返回类型:

int

返回设备每英寸点的水平分辨率。例如,在打印时,此分辨率指物理打印机的分辨率。另一方面,逻辑DPI是指实际绘图引擎使用的分辨率。

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

redirected(offset)#
参数:

参数QPoint

返回类型:

QPaintDevice

sharedPainter()#
返回类型:

QPainter

width()#
返回类型:

int

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

参见

widthMM()

widthMM()#
返回类型:

int

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

参见

width()