大家好,欢迎来到IT知识分享网。
如何在改变窗口组件的情况下改变窗口背景图片的大小,我们通常会使用Qt自带的scaled()函数;QImage、QPixmap等绘图设备类都提供scaled()函数。
scaled()是一个重载函数,按照指定的宽和高,根据纵横比模式和转换模式从原有图像返回一个经过比例转换的图像,如果宽高为0,返回一个空图像
所以,获取控件的改变后的宽高,就能设定图像转换的宽高转换比例,用scaled()的返回重新进行绘图即可自适应窗口,以下是个例子:
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);
}
}
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/63265.html