QPaintDevice方法功能


//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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值