• 大小: 25KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-05-19
  • 语言: 其他
  • 标签: Qt界面  

资源简介

图片预览 可以放大,缩小图片

资源截图

代码片段和文件信息

/****************************************************************
** BlackPixmapItem
** 自定义graphicsitem,用于加载图片
**
** blackpixmapitem.h
**
** Zhou Tao   2017-05-18T11:09:16
**
** QQ : 741301964
**
** 深圳市XX电子股份有限公司
**
****************************************************************/
#include “blackpixmapitem.h“

BlackPixmapItem::BlackPixmapItem(int width int height bool isPreview):
    m_nWidth(width)m_nHeight(height)m_bIsPreview(isPreview){
}

QRectF BlackPixmapItem::boundingRect() const
{
    return QRectF(0 0 m_nWidth m_nHeight);
}

//设置item图片
void BlackPixmapItem::setPixmap(const QPixmap Pixmap)
{
    prepareGeometryChange();
    pixmap = Pixmap;
    update();
}

//设置item大小
void BlackPixmapItem::setSize(int w int h)
{
    prepareGeometryChange();
    m_nWidth = w;
    m_nHeight = h;
}

//item缩放
void BlackPixmapItem::setZoom(qreal zoomFactor)
{
    QTransform transform;
    transform.scale(zoomFactorzoomFactor);
    transform.translate(1024*(1.0-zoomFactor)/2600*(1.0-zoomFactor)/2);
    qDebug()<<1024*(1.0-zoomFactor)/2<<600*(1.0-zoomFactor)/2;
    setTransform(transform);
}

//清除图片
void BlackPixmapItem::clearPixmap()
{
    QPixmap clearPix = QPixmap();
    pixmap = clearPix;
    update();
}

#include 
//绘制item
void BlackPixmapItem::paint(QPainter *painter const QstyleOptionGraphicsItem *option QWidget *widget)
{
    Q_UNUSED(widget);
    Q_UNUSED(option);

    painter->setBrush(Qt::black);//背景填充黑色
    painter->drawRoundedRect(0 0 m_nWidthm_nHeight 2 2);
    painter->setRenderHint(QPainter::SmoothPixmapTransformQt::SmoothTransformation);
    //绘制图片
    if(!pixmap.isNull())
    painter->drawPixmap((m_nWidth-pixmap.width())/2 (m_nHeight-pixmap.height())/2
                        pixmap.width()pixmap.height()pixmap);

    //阴影遮罩
    /*if(isSelected)
    {
        painter->setBrush(Qt::gray);//背景填充
        painter->setOpacity(0.5);//透明度
        painter->drawRoundedRect(0 0 m_nWidthm_nHeight 2 2);
    }*/
}

//点击放大
void BlackPixmapItem::setFocusIn()
{
    qDebug()<<“BlackPixmapItem focusInEvent “;
    //isSelected = true;
    //update();//更新
    setScale(1.05);//放大
}

//释放缩小
void BlackPixmapItem::setFocusOut()
{
    qDebug()<<“BlackPixmapItem focusOutEvent “;
    //isSelected = false;
    //update();//更新
    setScale(1);//缩小
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-12-28 00:26  ImageView\
     文件        2545  2017-06-14 09:50  ImageView\blackpixmapitem.cpp
     文件        1857  2017-06-05 17:17  ImageView\blackpixmapitem.h
     文件        6267  2017-06-05 17:17  ImageView\customgraphicsview.cpp
     文件        2288  2017-06-05 17:17  ImageView\customgraphicsview.h
     目录           0  2017-06-14 10:04  ImageView\image\
     文件        2986  2017-06-05 17:17  ImageView\imageloadthread.cpp
     文件        1531  2017-06-05 17:17  ImageView\imageloadthread.h
     文件       12722  2017-06-14 09:59  ImageView\imagepreview.cpp
     文件        3143  2017-06-14 09:22  ImageView\imagepreview.h
     文件       18851  2017-06-14 10:01  ImageView\imageview.cpp
     文件        4812  2017-06-14 09:26  ImageView\imageview.h
     文件         630  2017-06-13 17:47  ImageView\ImageView.pro
     文件       23908  2017-12-28 00:26  ImageView\ImageView.pro.user
     文件       23853  2017-06-14 09:17  ImageView\ImageView.pro.user.0577304
     文件         183  2017-06-05 17:11  ImageView\main.cpp
     文件         352  2017-06-14 09:38  ImageView\mainwindow.cpp
     文件         404  2017-06-13 17:15  ImageView\mainwindow.h
     文件         654  2017-06-05 17:11  ImageView\mainwindow.ui

评论

共有 条评论