我试图通过按钮上的网络摄像头显示捕获的图像。问题是每次我捕获新图像时按钮的大小都会增加。这是代码:
connect(imageCapture, SIGNAL(imageCaptured(int,QImage)), this, SLOT(processCapturedImage(int,QImage)));
.
.
.
.
void Camera::processCapturedImage(int requestId, const QImage& img)
{
Q_UNUSED(requestId);
QImage scaledImage = img.scaled(ui->lastImageCapturedBtn->size(),
Qt::KeepAspectRatio,
Qt::SmoothTransformation);
QPixmap capturedImage = QPixmap::fromImage(scaledImage);
ui->lastImageCapturedBtn->setIcon(QIcon(capturedImage));
ui->lastImageCapturedBtn->setIconSize(capturedImage.rect().size());
}
我改变了
QImage scaledImage = img.scaled(ui->lastImageCapturedBtn->size(),
Qt::KeepAspectRatio,
Qt::SmoothTransformation);`
到QImage scaledImage = img.scaled(298,298);
没有效果,每按一次捕捉一个新图像,按钮就变得越来越大。
我也改变了行
ui->lastImageCapturedBtn->setIconSize(capturedImage.rect().size());
到
ui->lastImageCapturedBtn->setIconSize(ui->lastImageCapturedBtn->size());
- 再次出现相同的行为
该按钮是使用Qt Designer创建的。我将maximumSize更改为298x298,将iconSize更改为298x298
答案 0 :(得分:0)
我将minimumSize更改为298x298,现在它按照我的预期方式工作