QPaintDevice 类
QPaintDevice 类是可用于通过 QPainter 绘图的基类对象。有关更多信息,请参阅 此处。
头文件 | #include <QPaintDevice> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
继承自 | QImage,QOpenGLPaintDevice,QPagedPaintDevice,QPaintDeviceWindow,QPicture,QPixmap,QSvgGenerator 和 QWidget |
- 所有成员列表,包括继承的成员
- QPaintDevice 是 绘图类 的一部分。
公共类型
枚举 | PaintDeviceMetric { PdmWidth, PdmHeight, PdmWidthMM, PdmHeightMM, PdmNumColors, …, PdmDevicePixelRatioScaled } |
公共函数
虚拟 | ~QPaintDevice() |
int | colorCount() const |
int | depth() const |
qreal | devicePixelRatio() const |
qreal | devicePixelRatioF() const |
int | height() const |
int | heightMM() const |
int | logicalDpiX() const |
int | logicalDpiY() const |
虚拟 QPaintEngine * | paintEngine() const = 0 |
bool | paintingActive() const |
int | physicalDpiX() const |
int | physicalDpiY() const |
int | width() const |
int | widthMM() const |
保护函数
QPaintDevice() | |
虚拟 int | metric(QPaintDevice::PaintDeviceMetric metric) const |
详细描述
绘图设备是可以使用 QPainter 绘制的二维空间的抽象。其默认坐标系统以左上角为原点。X 增加到右侧,Y 增加到下方。单位是像素。
QPaintDevice的绘图功能目前由QWidget、QImage、QPixmap、QPicture和QPrinter子类实现。
要实现对新后端的支持,您必须从QPaintDevice派生,并重新实现虚拟函数paintEngine(),以告诉QPainter应使用哪种绘图引擎来绘制特定设备。请注意,您还必须创建相应的绘图引擎,即派生自QPaintEngine并重新实现其虚拟函数,才能在该设备上进行绘制。
警告:在创建任何绘图设备之前,Qt要求存在QGuiApplication对象。绘图设备访问窗口系统资源,并且在没有创建应用程序对象之前,这些资源不会被初始化。
QPaintDevice类提供了几个返回不同设备度量值的功能:depth()函数返回其位深度(位数组)。height()函数返回其在默认坐标系中的高度(例如,对于QPixmap和QWidget,为像素)。而heightMM()返回设备以毫米为单位的高度。同样,width()和widthMM()函数分别以默认坐标系单位和毫米为单位返回设备宽度。另外,可以使用受保护的metric()函数通过指定所需的PaintDeviceMetric来检索度量信息。
logicalDpiX()和logicalDpiY()函数返回设备以每英寸点数为单位水平和垂直分辨率。physicalDpiX()和physicalDpiY()函数也以每英寸点数为单位返回设备的分辨率,但请注意,如果逻辑和物理分辨率不同,相应的QPaintEngine必须处理映射。最后,colorCount()函数返回可用于绘图设备的不同颜色的数量。
另请参阅:QPaintEngine、QPainter、坐标系和绘制系统。
成员类型文档
enum QPaintDevice::PaintDeviceMetric
描述绘图设备的各种度量。
常量 | 值 | 描述 |
---|---|---|
QPaintDevice::PdmWidth | 1 | 以默认坐标系单位(例如,对于QPixmap和QWidget为像素)表示的绘图设备宽度。另请参阅width()。 |
QPaintDevice::PdmHeight | 2 | 以默认坐标系单位(例如,对于QPixmap和QWidget为像素)表示的绘图设备高度。另请参阅height()。 |
QPaintDevice::PdmWidthMM | 3 | 以毫米表示的绘图设备宽度。另请参阅widthMM()。 |
QPaintDevice::PdmHeightMM | 4 | 以毫米表示的绘图设备高度。另请参阅heightMM()。 |
QPaintDevice::PdmNumColors | 5 | 绘图设备可用的不同颜色数量。另请参阅colorCount()。 |
QPaintDevice::PdmDepth | 6 | 绘图设备的位深度(位数组)。另请参阅depth()。 |
QPaintDevice::PdmDpiX | 7 | 以每英寸点数为单位的设备水平分辨率。另请参阅logicalDpiX()。 |
QPaintDevice::PdmDpiY | 8 | 设备的垂直分辨率,每英寸点数。另见 logicalDpiY。 |
QPaintDevice::PdmPhysicalDpiX | 9 | 设备的水平分辨率,每英寸点数。另见 physicalDpiX。 |
QPaintDevice::PdmPhysicalDpiY | 10 | 设备的垂直分辨率,每英寸点数。另见 physicalDpiY。 |
QPaintDevice::PdmDevicePixelRatio | 11 | 设备的像素比。常见值是 1,适用于正常 dpi 屏幕和 2,适用于高 dpi 的“视网膜”屏幕。 |
QPaintDevice::PdmDevicePixelRatioScaled | 12 | 设备的缩放像素比。这与 PdmDevicePixelRatio 相同,不同的是值通过一个常数因子缩放,以支持具有分数缩放因子的画布设备。使用的常量缩放因子是 devicePixelRatioFScale()。此枚举值在 Qt 5.6 中引入。 |
另见 metric 和 devicePixelRatio。
成员函数文档
[noexcept protected]
QPaintDevice::QPaintDevice()
构建画布设备。此构造函数只能从 QPaintDevice 的子类中调用。
[virtual noexcept]
QPaintDevice::~QPaintDevice()
销毁画布设备,释放窗口系统资源。
int QPaintDevice::colorCount() const
返回可用于画布设备的不同颜色数量。如果可用的颜色数量太多,无法用 int 数据类型表示,则返回 INT_MAX。
int QPaintDevice::depth() const
返回画布设备的位深度(位平面数)。
qreal QPaintDevice::devicePixelRatio() const
返回设备的像素比。
常见值是 1,适用于正常 dpi 屏幕和 2,适用于高 dpi 的“视网膜”屏幕。
qreal QPaintDevice::devicePixelRatioF() const
返回设备像素比作为浮点数。
int QPaintDevice::height() const
返回画布设备在默认坐标系单位中的高度(例如,对于 QPixmap 和 QWidget 是像素)。
另见 heightMM。
int QPaintDevice::heightMM() const
返回画布设备的高度(毫米)。由于平台限制,可能无法使用此函数来确定屏幕上窗口的实际物理大小。
另见 height。
int QPaintDevice::logicalDpiX() const
返回设备在每英寸点的水平分辨率,用于计算字体大小。对于 X11,这通常与从 widthMM 计算得到的结果相同。
请注意,如果logicalDpiX()的值不等于physicalDpiX(),相应的QPaintEngine必须处理分辨率映射。
另请参阅logicalDpiY()和physicalDpiX()。
int QPaintDevice::logicalDpiY() const
返回设备的垂直分辨率(每英寸点数),用于计算字体大小。对于X11,这通常与从heightMM()计算的值相同。
请注意,如果logicalDpiY()不等于physicalDpiY(),相应的QPaintEngine必须处理分辨率映射。
另请参阅logicalDpiX()和physicalDpiY()。
[虚保护]
int QPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const
返回指定绘制设备metric的度量信息。
另请参阅PaintDeviceMetric。
[纯虚]
QPaintEngine *QPaintDevice::paintEngine() const
返回用于在设备上绘制的绘图引擎的指针。
bool QPaintDevice::paintingActive() const
如果设备当前正在被绘制(即有人调用了QPainter::begin()但尚未为该设备调用QPainter::end()),则返回true;否则返回false。
另请参阅QPainter::isActive。
int QPaintDevice::physicalDpiX() const
返回设备在每英寸点数(dpi)的水平和分辨率。例如,在打印时,该分辨率指的是物理打印机的分辨率。而逻辑DPI则是指实际绘图引擎使用的分辨率。
请注意,如果physicalDpiX()不等于logicalDpiX(),相应的QPaintEngine必须处理分辨率映射。
另请参阅physicalDpiY()和logicalDpiX()。
int QPaintDevice::physicalDpiY() const
返回设备在每英寸点数(dpi)的水平和分辨率。例如,在打印时,该分辨率指的是物理打印机的分辨率。而逻辑DPI则是指实际绘图引擎使用的分辨率。
请注意,如果physicalDpiY()不等于logicalDpiY(),相应的QPaintEngine必须处理分辨率映射。
另请参阅physicalDpiX()和logicalDpiY()。
int QPaintDevice::width() const
返回绘制设备的宽度,以默认坐标系单位(例如,QPixmap和QWidget的像素)计算。
另请参阅widthMM()。
int QPaintDevice::widthMM() const
以毫米为单位返回绘制设备的宽度。由于平台限制,可能无法使用此函数来确定屏幕上小部件的实际物理大小。
另请参阅 宽度。
© 2024 Qt公司有限。本文件中的文档贡献是各自所有者的版权。本文件提供的文档根据自由软件基金会发布的 GNU自由文档许可证版本1.3 的条款许可。Qt及其相关标志是芬兰的Qt公司及其全球其他国家的商标。所有其他商标均为其各自所有者的财产。