Qt⾃适应图⽚之scaled()函数详解摘抄段落
如何在改变窗⼝组件的情况下改变窗⼝背景图⽚的⼤⼩,我们通常会使⽤Qt⾃带的scaled()函数;QImage、QPixmap等绘图设备类都提供scaled()函数。laggy
scaled()是⼀个重载函数,按照指定的宽和⾼,根据纵横⽐模式和转换模式从原有图像返回⼀个经过⽐例转换的图像,如果宽⾼为0,返回⼀个空图像
中国最美的女人是谁所以,获取控件的改变后的宽⾼,就能设定图像转换的宽⾼转换⽐例,⽤scaled()的返回重新进⾏绘图即可⾃适应窗⼝,以下是个例⼦:
1void Widget::paintEvent(QPaintEvent *)
2 {
3
4 QImage img((unsigned char*)im.ls,秘书论文
5 im.rows,QImage::Format_RGB888);
6 QPainter painter(this);
7if(0==flag)
8 painter.drawImage(0,0,nImg);魔鬼复活
9/*
10⼀定要加标记位判断,控件在绘制之前的size为NULL,
凋碧树
11所以scaled()返回值也为NULL,会提⽰nImg是空的
12*/
13el if(1==flag)
14 {
15 nImg=img.scaled(width(),height());
16 painter.drawImage(0,0,nImg);
1996多大>睡莲怎么养17 }
18 }
备注:如果图⽚缩放⽐例较⼤,最好原始资源图⽚的分辨率⾼点,否则会在放⼤后,出现图⽚模糊。