加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

QT图片旋转

(2014-12-17 16:28:43)
标签:

健康

分类: QT学习之路

http://blog.csdn.net/itjobtxq/article/details/9231103

 

目前发现有两种方法,如下:

1、使用QPixmap的transformed函数旋转,这个函数默认是以图片中心为旋转点,不能随意设置旋转点,使用如下:

QMatrix leftmatrix;
 leftmatrix.rotate(180);

QLabel *pLabel= new QLabel();
pLabel->setPixmap(QPixmap(“:/images/img.png”).transformed(leftmatrix,Qt::SmoothTransformation));

实现效果是顺时计旋转180度

 

 

 

             QImage *pi = new QImage;
            pi->load(":/res/res/pingmu.png");

            QImage * pix = new QImage;
            QMatrix matrix;
            matrix.rotate(-10);
            *pix = pi->transformed(matrix);
            m_pingmu->setPixmap(QPixmap::fromImage(*pix));
            //m_pingmu->move((10)*m_nWidth / 1920,1*m_nHeight/1080 );
            m_pingmu->setGeometry(1*m_nWidth / 3-60,1*m_nHeight/30-150,1000,1000);

 

 

2、使用QPainter类

void Dialog::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QPixmap pix;
pix.load("images/img.png");
painter.translate(50,50); //让图片的中心作为旋转的中心
    painter.rotate(90); //顺时针旋转90度
    painter.translate(-50,-50); //使原点复原
    painter.drawPixmap(0,0,100,100,pix);
}

0

阅读 收藏 喜欢 打印举报/Report
前一篇:游戏创建
后一篇:Qt4过渡至Qt5上
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有