找回密码
 立即注册
收起左侧

清除label上显示的图片

3
回复
8622
查看
[复制链接]
累计签到:13 天
连续签到:1 天
来源: 2014-8-29 19:35:53 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
    在label上显示了一张图片,显示下一张时如何清除原图片,用clear()怎么没有效果。
  1. QLabel *label=new QLabel(this);
  2.     label->setObjectName("ViewPhoto");
  3.     label->setGeometry(0,50,1350,620);
  4.     label->setAlignment(Qt::AlignCenter);//图片在label上居中显示
  5.     ui->setupUi(this);
  6.     QString filename=QFileDialog::getOpenFileName(this,tr("打开图片"),"E:/Photo/Camera",tr("图片格式(*.jpg *.png *.bmp);;所有(*.*)"));
  7.     QPixmap pixmap(filename);

  8.     float x,y;
  9.     x=pixmap.width();
  10.     y=pixmap.height();
  11.     //如果图片超过label的大小,将图片成比例缩小至label大小
  12.     if(x>label->width()||y>label->height())
  13.     {
  14.         label->clear();
  15.         x=label->height()*x/y;
  16.         y=label->height();
  17.         pixmap=pixmap.scaled(x,y,Qt::KeepAspectRatio);
  18.         label->setPixmap(pixmap);
  19.         label->show();
  20.     }
  21.     else//图片比label小,不做处理
  22.     {
  23.         label->clear();
  24.         label->setPixmap(pixmap);
  25.         label->show();
  26.     }
复制代码
回复

使用道具 举报

尚未签到

2014-8-29 19:46:15 显示全部楼层
如果实在不行干脆弄个只有1 像素的图片覆盖
回复 支持 反对

使用道具 举报

累计签到:13 天
连续签到:1 天
2014-8-29 22:54:03 显示全部楼层
恩,用close()也可以达到效果
回复 支持 反对

使用道具 举报

累计签到:13 天
连续签到:1 天
2014-8-29 22:54:36 显示全部楼层
Joey_Chan 发表于 2014-8-29 19:46
如果实在不行干脆弄个只有1 像素的图片覆盖


恩,用close()也可以达到效果
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了