我是靠谱客的博主 狂野帆布鞋,这篇文章主要介绍Qt 自适应图片之scaled()函数详解,现在分享给大家,希望可以做个参考。

  如何在改变窗口组件的情况下改变窗口背景图片的大小,我们通常会使用Qt自带的scaled()函数;QImage、QPixmap等绘图设备类都提供scaled()函数。

  scaled()是一个重载函数,按照指定的宽和高,根据纵横比模式和转换模式从原有图像返回一个经过比例转换的图像,如果宽高为0,返回一个空图像
所以,获取控件的改变后的宽高,就能设定图像转换的宽高转换比例,用scaled()的返回重新进行绘图即可自适应窗口,以下是个例子:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void Widget::paintEvent(QPaintEvent *) { QImage img((unsigned char*)im.data,im.cols, im.rows,QImage::Format_RGB888); QPainter painter(this); if(0==flag) painter.drawImage(0,0,nImg); /* 一定要加标记位判断,控件在绘制之前的size为NULL, 所以scaled()返回值也为NULL,会提示nImg是空的 */ else if(1==flag) { nImg=img.scaled(width(),height()); painter.drawImage(0,0,nImg); } }

最后

以上就是狂野帆布鞋最近收集整理的关于Qt 自适应图片之scaled()函数详解的全部内容,更多相关Qt内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部