1、新建一个Qt Gui应用,项目名称为myPicture,基类选择为QMainWindow,类名设置为MainWindow。

2、在mainwindow.h头文件中添加void paintEvent(QPaintEvent *);绘图事件函数

3、在mainwindow.cpp文件中添加如下代码段,同时头文件中添加#include<QPainter>

 void MainWindow::paintEvent(QPaintEvent *)
{ QPainter painter(this);
QPixmap pix;
pix.load("../myPicture/top.png");//将图片置于项目的根目录
//图一
painter.drawPixmap(, , , , pix);//图片尺寸22乘以22,设置大小不一样的话,图片会自动伸缩
//图二
painter.translate(, ); //将(100, 100)设为坐标原点
painter.drawPixmap(, , , , pix);//图片以(100, 100)为原点
//图三
qreal width = pix.width(); //获得以前图片的宽
qreal height = pix.height();//获得以前图片的高
pix = pix.scaled(width*, height*, Qt::KeepAspectRatio);//将图片的宽和高都扩大两倍,并且在给定的矩形内保持宽高的比值不变
painter.drawPixmap(, ,pix);//继续以前面设置好的(100, 100)为坐标原点
//图四
painter.translate(, ); //再次设置新的(100,100)为坐标原点,相对于最开始的坐标原点(0, 0)来说,此处相当于(200, 200)
painter.rotate(); //顺时针旋转90度
painter.drawPixmap(, , , , pix);//注意此处的坐标要写成(0, 0),即在新坐标原点放置旋转后的图片
//图五
painter.shear(0.5, 0.1); //横向扭曲0.5,纵向扭曲0.1,值越大,扭曲程度越大
painter.drawPixmap(-, -, , , pix);//前面设置的反转属性没有更改,实际是将整个坐标系进行了180度反转,因此,向右下方移动为负x负y
//图六
painter.shear(-0.5, -0.1); //若想后面的图形不再扭曲,要进行前面扭曲的相反设置
painter.drawPixmap(-, -, , , pix);//前
}

4、运行结果显示如下

附:图片伸缩后的宽高设置属性

其中:IgnoreAspectRatio:图片宽高比适应给定好的矩形大小

     KeepAspectRatio:在给定的矩形中,保持图片宽高比前后不发生变化

     KeepAspectRatioByExpanding:图片宽高比保持不变,但可能超出矩形大小

Qt::IgnoreAspectRatio是不保持图片的宽高比,Qt::KeepAspectRatio是在给定的矩形中保持宽高比,最后一个也是保持宽高比,但可能超出给定的矩形。

初识Qt图片显示、平移及旋转的更多相关文章

  1. Qt图片显示效率的比较 转

    转http://blog.sina.com.cn/s/blog_5c70dfc80100r257.html 在Qt中处理图片一般都要用到QImage类,但是QImage的对象不能够直接显示出来,要想能 ...

  2. Qt图片显示

    1.图片截取指定大小 void Setting_TabProduct::changeImageSize(int width,int height,QString imgFile) { QPixmap ...

  3. c#图片的平移与旋转

    1新建文件夹,添加一个图片 2 添加控件 两个button控件 一个image控件 一个Canvas控件 3 代码实现 using System;using System.Collections.Ge ...

  4. QT中显示GIF图片

    在QT中要显示GIF图片,不能通过单单的添加部件来完成. 还需要手动的编写程序. 工具:QT Creator 新建一个工程,我们先在designer中,添加一个QLabel部件. 如下图: 将QLab ...

  5. Qt添加窗口背景图片、Label图片显示、、Label文字显示

    一.添加窗口背景图片 重写MainWindow绘制事件 void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this) ...

  6. QT图片旋转

    目前发现有两种方法,如下: 1.使用QPixmap的transformed函数旋转,这个函数默认是以图片中心为旋转点,不能随意设置旋转点,使用如下: QMatrix leftmatrix; leftm ...

  7. OpenCV【2】---读取png图片显示到QT label上的问题

    问题一:   操作图片test.png是一个365x365的PNG图片   通过OpenCV自带的GUI显示出来图像是没问题的,例如以下操作代码所看到的: QStringfileName=QFileD ...

  8. QT开发实战一:图片显示

    测试平台 宿主机平台:Ubuntu 12.04.4 LTS 目标机:Easy-ARM IMX283 目标机内核:Linux 2.6.35.3 QT版本:Qt-4.7.3 Tslib版本:tslib-1 ...

  9. qt用于图片显示的窗口

     用于图片显示的窗口 国产化  

随机推荐

  1. springboot中使用druid和监控配置

    如果想要监控自己的项目的访问情况及查看配置信息,druid是一个很好的选择,可能你会问druid是什么?有什么用?优点是什么? Druid简介 Druid是阿里巴巴开源的数据库连接池,号称是Java语 ...

  2. Eclipse环境开发Teamcenter RAC

    外包发过来的RAC程序老是报错,导致测试走不下去.Bug修复响应太慢,用jad看了下代码也不是很复杂,决定自己调试.在Eclipse 环境下开发Teamcenter RAC一般是用Eclipse,在做 ...

  3. join() 方法详解及应用场景

    总结:join方法的功能就是使异步执行的线程变成同步执行.也就是说,当调用线程实例的start方法后,这个方法会立即返回,如果在调用start方法后后需要使用一个由这个线程计算得到的值,就必须使用jo ...

  4. Claims-based认证解析

    Claims-based认证相关的两个重要的类ClaimsIdentity以及ClaimsPrincipal解析 ClaimsIdentity以及ClaimsPrincipal是.NET下Claims ...

  5. ORACLE学习文档

    转自 http://sparklet.blog.sohu.com/523655.html 数据库被分成一个或多个逻辑部件称作表空间.而表空间又被分成称作段(segment)的逻辑部件.这些段再细分就叫 ...

  6. 用JS实现的常见几种排序算法

    1.快速排序法 function quickSort(a) { if (a.length <= 1) { return a; } var midLength = Math.floor(a.len ...

  7. C#自定义控件的创建

    1.创建自定义控件 选择[经典桌面]——[窗体控件库] 2.添加控件,组合成一个新的控件 自定义控件功能:打开一张图片,将图片展示在pictureBox控件中,并将图片的名称.大小.尺寸显示出来 控件 ...

  8. asp.net 一般处理程序接收上传文件的问题

    在使用Html+ashx处理文件上传时,遇到上传文件超过4M的问题,首先HTML代码如下: <!DOCTYPE html> <html> <head> <me ...

  9. OSCache-缓存对象

    在实际应用中除了JSP标签库,还可以使用OSCache提供的Java API.下面我来介绍一个实用的Java类,使用GeneralCacheAdministrator来建立,刷新和管理缓存. Gene ...

  10. UIView的无损截图

    UIView的无损截图 说明 1. 烂大街的代码 2. 写成category后,方便直接从drawRect中获取绘制出来的图片 3. 可以直接绘制图片供按钮设置背景图片用 4. 无损截图(包括alph ...