• 10341阅读
  • 9回复

跪求:用QT编程如何实现图片全屏拉伸显示啊 [复制链接]

上一主题 下一主题
离线gaoran
 
只看楼主 倒序阅读 楼主  发表于: 2008-07-31
— 本帖被 XChinux 执行加亮操作(2008-08-02) —
我用QT写了一个显示图片手程序,如何使其全屏显示,要用到什么函数啊,高手帮帮忙。我是菜鸟
离线XChinux

只看该作者 1楼 发表于: 2008-07-31
用QImage装载图片数据,然后进行拉伸,最后使用setPalette()某个部件上显示。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线gaoran
只看该作者 2楼 发表于: 2008-08-01
谢谢,我试试
离线gaoran
只看该作者 3楼 发表于: 2008-08-01
怎么拉伸啊,用什么函数,斑竹能具体点么,我刚学QT
离线cspp

只看该作者 4楼 发表于: 2008-08-01
scale()
QImage newImange = oldImage.scale(QSize(800,600));
离线gaoran
只看该作者 5楼 发表于: 2008-08-01
谢了,我做出来了,谢谢大家
离线gaoran
只看该作者 6楼 发表于: 2008-08-01
贴上我的那段代码,供大家分享:
    pBackBuffer = new QPixmap(filename);
    qimage = pBackBuffer->convertToImage();
    qimage = qimage.scale(screen_width, screen_height,    QImage::ScaleFree);
    pBackBuffer->convertFromImage(qimage, QPixmap::Auto);
离线duduqq

只看该作者 7楼 发表于: 2008-08-02
引用第6楼gaoran于2008-08-01 14:01发表的  :
贴上我的那段代码,供大家分享:
    pBackBuffer = new QPixmap(filename);
    qimage = pBackBuffer->convertToImage();
    qimage = qimage.scale(screen_width, screen_height,    QImage::ScaleFree);
    pBackBuffer->convertFromImage(qimage, QPixmap::Auto);

怎么转换了两次啊,QPixmap不是也有个函数scale吗
离线gaoran
只看该作者 8楼 发表于: 2008-08-05
啊,是嘛,那我愚昧了,我找找看。
离线finaleden
只看该作者 9楼 发表于: 2010-10-07
不用那么麻烦
假设已经有一个QPixmap 对象 back_pixmap 了
只需要:
back_pixmap = back_pixmap.scaled(QSize(480,640),Qt::IgnoreAspectRatio,Qt::SmoothTransformation);
qWarning("the pix width is %d",back_pixmap.size().width());
QPalette p;
p.setBrush(QPalette::Window, QBrush(back_pixmap));
setPalette(p);
然后背景就被拉伸填充了
上善若水 厚德载物
快速回复
限100 字节
 
上一个 下一个