|
在label上显示了一张图片,显示下一张时如何清除原图片,用clear()怎么没有效果。- QLabel *label=new QLabel(this);
- label->setObjectName("ViewPhoto");
- label->setGeometry(0,50,1350,620);
- label->setAlignment(Qt::AlignCenter);//图片在label上居中显示
- ui->setupUi(this);
- QString filename=QFileDialog::getOpenFileName(this,tr("打开图片"),"E:/Photo/Camera",tr("图片格式(*.jpg *.png *.bmp);;所有(*.*)"));
- QPixmap pixmap(filename);
- float x,y;
- x=pixmap.width();
- y=pixmap.height();
- //如果图片超过label的大小,将图片成比例缩小至label大小
- if(x>label->width()||y>label->height())
- {
- label->clear();
- x=label->height()*x/y;
- y=label->height();
- pixmap=pixmap.scaled(x,y,Qt::KeepAspectRatio);
- label->setPixmap(pixmap);
- label->show();
- }
- else//图片比label小,不做处理
- {
- label->clear();
- label->setPixmap(pixmap);
- label->show();
- }
复制代码 |
|