Qt 的插入的图片的移动、缩放操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 的插入的图片的移动、缩放操作相关的知识,希望对你有一定的参考价值。

参考技术A Qt贴吧里的资料汇总

Qt 插入图片这个操作有许多的方式,常用的是采用QPainter绘图板插入图片,因为这种方法是通过像素坐标来固定插入图片的位置,还可以插入动态图和视频,功能很强大。 Qt通过painter加载图片 因为我非科班出身,只是学了QT的大概操作,所以对于图片的移动缩放这个简单的函数也是找了许多博文看了才懂。其实也非常简单。
图片操作——移动
图片操作——缩放旋转
图片操作——通过定时器控制图片移动
在插入图片后,图片的移动也做了后发现了一个问题:就是多步操作图片移动后,图片的加载会出错,即不显示图片和错误的显示图片大小。我就将图片坐标的变量改为volatile 型结果还是不行。就想到了刷新界面。 刷新函数update() 和 刷新图元repaint() ,这两个函数都是用来刷新界面,用update时操作过快时偶尔没反应,用repaint时不会清除历史界面而是加叠在最上面。我就绝望了,就换了其他加载图片的方式,QPalette,QImage,QPicture,setPixmap ,结果后面的图片操作函数也要重写,而网上这些函数的图片移动缩放操作还没有,我就心如咸鱼了。后来睡觉前想到了将两个函数同时使用试试,结果就正常显示了,兴奋的我就去玩了两盘王者荣耀,两点多才睡。
这个网站的页面插件做的很不错,不知道是怎么做的。很有趣。 update()函数介绍

这个就是Qt的表格,表格操作没什么难点,只是在下最近要用就去又学了一遍。这是看到的比较好的两篇干货。
Qt tableview的用法小结
Qt tableview的用法小结(二)

Qt 图片适应QLabel控件大小(饱满缩放和按比例缩放)

直接上代码:

1 QImage Image;
2     Image.load("d:/test.jpg");
3     QPixmap pixmap = QPixmap::fromImage(Image);
4     int with = ui->labPic->width();
5     int height = ui->labPic->height();
6     QPixmap fitpixmap = pixmap.scaled(with, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);  // 饱满填充
7     //QPixmap fitpixmap = pixmap.scaled(with, height, Qt::KeepAspectRatio, Qt::SmoothTransformation);  // 按比例缩放
8     ui->labPic->setPixmap(fitpixmap);

 

以上是关于Qt 的插入的图片的移动、缩放操作的主要内容,如果未能解决你的问题,请参考以下文章

zx-image-view图片查看插件-切换旋转缩放移动

移动端双指缩放图片功能实践

在图像移动/调整大小/旋转操作中在图像周围放置一些指示符

PB程序中用图片控件按比例缩放显示图片大小

java swing 怎么让图片大小随着窗口的缩放而缩放?为啥我插入的图片尺寸不变?

在WPF里面实现以鼠标位置为中心缩放移动图片