我正在尝试使用 qt creator 实现一个可扩展的图像小部件,它将保留图像的纵横比。我发现的所有示例或帖子都建议扩展 QLabel 并重新实现 resizeEvent。这就是我所做的,它几乎可以工作,但有一些问题。
当主窗口第一次打开时,图像会稍微变大并扩大主窗口的大小(这不是太大的问题)。
当我最大化窗口时,所有图像都会放大,但是当我取消最大化窗口时,图像无法缩小。
我尝试更改 QLabel 子类(称为 ClickableImage)和包含 ClickableImage 布局的父小部件的 resizeEvents。这是一些相关的代码。
void ClickableImage::resizeEvent(QResizeEvent *e)
{
qDebug() << "Resizing : " << ticker;
ticker++;
int w = e->size().width();
int h = e->size().height();
qDebug() << "W : " << w;
qDebug() << "H : " << h;
image = QPixmap(fname);
image = image.scaled(w-7, h-7, Qt::KeepAspectRatio);
setPixmap(image);
}
此外,我还阅读了以下资料,
Qt:调整包含 QPixmap 的 QLabel 的大小,同时保持其纵横比
https://docs.huihoo.com/qt/4.2/desktop-screenshot.html
谢谢。