我正在尝试用qt创建者来实现一个可伸缩的图像小部件,它将保持图像的纵横比。我发现的所有示例或帖子都建议扩展QLabel并重新实现resizeEvent。这是我所做的,它几乎是有效的,但对于一些问题。
我尝试过更改resizeEvents的QLabel子类(称为ClickableImage)和包含ClickableImage布局的父小部件。这是一些相关的代码。
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:调整包含QLabel的QPixmap大小,同时保持其纵横比
https://docs.huihoo.com/qt/4.2/desktop-screenshot.html
谢谢。
发布于 2012-06-26 07:59:31
我有四件事你应该试试。如果您输入一个更大的代码示例,我可能会为您尝试一下,但下面是我为您提供的内容:
adjustSize()。您可能不需要一个update()调用,但是您可以尝试在其中放置一个,看看它是否会产生影响。hideEvent()相同,因此,如果您希望它在最小化上更改图像大小,也可以在其中添加一些图像缩放。希望这能有所帮助。如果你还有问题,请告诉我。
https://stackoverflow.com/questions/11074900
复制相似问题