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. less之旅

    在遇到less之前,一直和css交往,当less出现在我码农生涯的时候,被她给深深地吸引.从此,less成了自己码农生活里面的一房,css退居二房!那么,less到底有什么魅力让我如此迷上她呢? le ...

  2. Jquery实现可拖动进度条demo

    html <div class="progress"> <div class="progress_bg"> <div class= ...

  3. Eclipse工程 导入 Android Studio

    最近Eclipse好多项目转Android Studio 百度翻看好多文章 这篇不错 特纪录下 地址:http://www.cnblogs.com/bluestorm/p/3757402.html 一 ...

  4. arcgis10.3下载,arcgis pro的下载地址

    链接:http://pan.baidu.com/s/1eQ2BkCM 密码:fmkh

  5. Java 接口和多态

    接口 1.1 接口的概述 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样 ...

  6. android开启线程的误区

    发现一些刚学android的人,和我当初一样,对android的线程会存在着一定误区. 在android中,开启新线程时,一些人会用以下方法: new Handler().post(r); 但是这样并 ...

  7. Android:Gradle sync failed: Another 'refresh project' task is currently running for the project

    android studio 克隆项目后,重新导入后显示Gradle sync failed: Another 'refresh project' task is currently running ...

  8. linux客户端打印报表时操作系统的配置

     报表打印是用applet方式操作的,所以客户端要有jre环境.如果客户端是windows系统的话,安装jre环境比较方便:如果客户端是linux系统的话,即使服务器端reportConfig.x ...

  9. frame shiro 授权及原理简述

    shiro 授权模式 shiro采用的是rbac授权模式rbac,基于角色的权限管理,谁扮演什么角色,被允许做什么事情. shiro 授权流程 shiro 授权方式 1.编程式 通过写if/else授 ...

  10. Pig join用法举例

    jnd = join a by f1, b by f2;   join操作默认的是内连接,只有两边都匹配才会保留   需要用null补位的那边需要知道它的模式: 如果是左外连接,需要知道右边的数据集的 ...