//for starf study
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QDebug>
#include<QPaintDevice>
#include<QImage>
//QPaintDevice类是可以使用QPainter绘制的对象的基类。
//绘画设备是二维空间的抽象,可以使用QPaint绘制。
//其默认坐标系的原点位于左上角。X向右增加,Y向下增加。单位是一个像素。
//QPaintDevice的绘图功能目前由QWidget、QImage、QPixmap、QGLPixelBuffer、QPicture和QPrinter子类实现。
//要实现对新后端的支持,必须从QPaintDevice派生并重新实现virtual paintEngine()函数
//QPaintEngine类提供了QPainter如何在给定平台上绘制给定设备的抽象定义。
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QImage pdvc = QImage(300,300,QImage::Format_ARGB32);
//QImage是QPaintDevice的子类 构造QImage的时候,也构造了一个QPaintDevice对象
//QPaintDevice的构造函数只能从QPaintDevice的子类调用。
qDebug()<<pdvc.colorCount(); //返回绘制设备可用的不同颜色数。
qDebug()<<pdvc.depth(); //返回绘制设备的位深度(位平面数)。
qDebug()<<pdvc.devicePixelRatio(); //返回设备的设备像素比,即设备上物理像素 :设备独立像素
//正常dpi显示的常见值为1,高dpi的常见值为2。
//qreal QPaintDevice::devicePixelRatioF() const函数的高精度重载版本
qDebug()<<pdvc.heightMM(); //返回绘制设备的高度(以毫米为单位) 可能不准
qDebug()<<pdvc.logicalDpiX(); //返回设备的水平分辨率,单位为每英寸点数,用于计算字体大小。
qDebug()<<pdvc.logicalDpiY(); //返回设备的垂直分辨率,单位为每英寸点数,用于计算字体大小。
qDebug()<<pdvc.paintingActive(); //如果设备当前正在绘制,则返回true
QPaintEngine *de = pdvc.paintEngine(); //返回指向用于在设备上绘制的绘制引擎的指针。
qDebug()<<pdvc.width(); //以默认坐标系单位(例如,QPixmap和QWidget的像素)返回绘制设备的宽度。
qDebug()<<pdvc.widthMM(); //返回绘制设备的宽度(以毫米为单位)。 可能不准
}
//总之这个类就是一个抽象类,当需要使用的时候,就需要去定义一个他的子类对象
MainWindow::~MainWindow()
{
delete ui;
}
QPaintDevice方法功能
最新推荐文章于 2024-02-03 15:40:03 发布