Qt 显示图片 放大 缩小 移动
来源:互联网 发布:重庆网络刷票投票公司 编辑:程序博客网 时间:2024/05/20 05:11
本文章原创于www.yafeilinux.com 转载请注明出处。
1)显示图片:
将dialog.cpp文件中的paintEvent()函数更改如下。
void Dialog::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QPixmap pix;
pix.load(“images/linux.jpg”);
painter.drawPixmap(0,0,100,100,pix);
})
2) 图片移动:
Qpainter类中的translate()函数实现坐标原点的改变,改变原点后,此点将会成为新的原点(0,0);
例如:
void Dialog::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QPixmap pix;
pix.load(“images/linux.jpg”);
painter.drawPixmap(0,0,100,100,pix);
painter.translate(100,100); //将(100,100)设为坐标原点
painter.drawPixmap(0,0,100,100,pix);
}
void Dialog::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QPixmap pix;
pix.load(“images/linux.jpg”);
painter.drawPixmap(0,0,100,100,pix);
qreal width = pix.width(); //获得以前图片的宽和高
qreal height = pix.height();
pix = pix.scaled(width*2,height*2,Qt::KeepAspectRatio);
//将图片的宽和高都扩大两倍,并且在给定的矩形内保持宽高的比值
painter.drawPixmap(100,100,pix);
}
旋转使用的是QPainter类的rotate()函数,它默认是以原点为中心进行旋转的。我们要改变旋转的中心,可以使用前面讲到的translate()函数完成。
例如:
void Dialog::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QPixmap pix;
pix.load(“images/linux.jpg”);
painter.translate(50,50); //让图片的中心作为旋转的中心
painter.rotate(90); //顺时针旋转90度
painter.translate(-50,-50); //使原点复原
painter.drawPixmap(0,0,100,100,pix);
}
实现图片的扭曲,是使用的QPainter类的shear(qreal sh,qreal sv)函数完成的。它有两个参数,前面的参数实现横行变形,后面的参数实现纵向变形。当它们的值为0时,表示不扭曲。
例如:
void Dialog::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QPixmap pix;
pix.load(“images/linux.jpg”);
painter.drawPixmap(0,0,100,100,pix);
painter.shear(0.5,0); //横向扭曲
painter.drawPixmap(100,0,100,100,pix);
}
- Qt 显示图片 放大 缩小 移动
- Qt 显示图片 放大 缩小 移动
- Qt 显示图片 放大 缩小 移动
- qt实现图片放大缩小移动
- 移动鼠标放大缩小图片
- Qt实现长图片的放大缩小以及动态显示
- Qt 图片放大和缩小
- Android放大缩小显示图片
- android 图片的 放大 缩小 移动
- 自定义View之图片放大、缩小、移动
- Android图片放大缩小自由移动控件
- JS----图片显示出来后放大缩小
- 鼠标移动到图片上实现图片的放大缩小
- 【触摸事件】单击移动图片+双指放大缩小图片
- angularjs点击图片放大显示,点击关闭缩小显示
- WPF下实现图片的放大缩小移动
- 利用UIScrollView实现图片的放大、缩小和移动查看
- andriod 利用WebView实现 图片放大缩小以及移动[转]
- LeetCode 分类
- Linux 后台执行命令
- 剑指offer 面试题12 打印1到n位整数的最大值
- 为什么你的App介绍写得像一坨翔?
- ORACLE--Connect By、Level、Start With的使用(Hierarchical query-层次查询)
- Qt 显示图片 放大 缩小 移动
- Android中全局Application的onCreate多次调用问题
- Vmware虚拟机下三种网络模式配置
- sqlite避免重复插入数据
- 边记边学PHP-(十六)PHP使用MySQL扩展库操作数据库
- ExtJs4学习(六)MVC中的Model
- 漫谈经典排序算法
- PHP在做二元赋值运算的时候, 返回值并不是左值,而是一个临时变量
- hadoop 2.0版本后mapre-site的配置