使用 resizeEvent 调整窗口大小时调整 Qlabel 图像大小

哈森拉玛

我想使用 ResizeEvent 来接收窗口的大小并将其设置为 QLabel 的大小,以便使图像拉伸并适应窗口的尺寸。通过单击鼠标左键,我可以调整我的窗口和图像采用新尺寸。

埃利亚内斯克

您必须有以下注意事项:

  • 没有必要通过指针来存储 QPixmap,因为在将它传递给 QLabel 时,它是按值复制的。

  • 因此,如果您更改 QPixmap 的大小,p 将不会反映在 QLabel 中,因为具有 QLabel 的 QPixmap 是您在开始时建立的 QPixmap 的副本。

  • 没有必要为此任务使用布局,因为它会创建一个无限循环,因为这也会干预已经建立的小部件的 resizeEvent,因此如果您更改 QLabel 的大小,它将更改QWidget,这一次我将尝试更改QLabel,等等。

  • 不建议修改原始 QPixmap,因为更改其大小会修改像素,并且会得到意想不到的效果。

使用上面我们得到以下代码:

*。H

#ifndef TESTSIZE_H
#define TESTSIZE_H

#include <QWidget>

class QLabel;

class testsize : public QWidget
{
    Q_OBJECT

public:
    explicit testsize(QWidget *parent = 0);
    ~testsize();

private:
    QLabel *image;
    QPixmap original_px;

protected:
    void resizeEvent(QResizeEvent *event);
};

#endif // TESTSIZE_H

* .cpp

#include "testsize.h"

#include <QLabel>
#include <QResizeEvent>

testsize::testsize(QWidget *parent) :
    QWidget(parent)
{
    image = new QLabel(this);
    original_px = QPixmap(":/wallpaper.jpg");
    image->setPixmap(original_px);
    resize(640, 480);
}

testsize::~testsize()
{
}


void testsize::resizeEvent(QResizeEvent *event)
{
    QPixmap px = original_px.scaled(event->size());
    image->setPixmap(px);
    image->resize(event->size());
    QWidget::resizeEvent(event);
}

您可以在以下链接中找到完整的示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用QSizeGrip调整QLabel的大小

来自分类Dev

使用EffectComposer时调整窗口大小

来自分类Dev

同时调整 JPanel 大小时调整图像大小

来自分类Dev

调整窗口高度时调整图像的大小

来自分类Dev

调整窗口高度时调整图像的大小

来自分类Dev

Python PyQt Qlabel调整大小

来自分类Dev

调整窗口大小时使用jQuery更改正文

来自分类Dev

调整窗口大小时使用jQuery更改正文

来自分类Dev

使用Javascript调整窗口大小时如何更改菜单文本

来自分类Dev

CSS在窗口调整大小时调整div和div内的图像

来自分类Dev

使用GeometryReader调整窗口大小时,在SwiftUI中调整矩形网格的大小

来自分类Dev

在调整窗口大小时,如何防止使用HTML-CSS移动图像?

来自分类Dev

调整窗口大小时如何使用鼠标单击获取图像坐标?

来自分类Dev

在调整窗口大小时调用多个函数

来自分类Dev

在JavaFX中调整窗口大小时如何调整图像大小

来自分类Dev

防止QLabel调整父窗口小部件的大小

来自分类Dev

调整窗口大小时图像的位置改变

来自分类Dev

调整窗口大小时如何使图像流畅?

来自分类Dev

调整窗口大小时固定图像位置

来自分类Dev

使用 Nvidia NPP 调整图像大小时未记录的调整大小错误

来自分类Dev

在窗口调整大小时调整CALayer框架大小的方法?

来自分类Dev

ScalaFX(JavaFX):舞台内容不会在窗口调整大小时调整大小

来自分类Dev

在窗口调整大小时调整两个图片框的大小

来自分类Dev

使用Canvas调整覆盖图像大小时出现问题

来自分类Dev

使用最大设备宽度调整大小时如何隐藏图像?

来自分类Dev

调整大小时,使用laravel中的asset功能加载图像

来自分类Dev

使用CSS调整图像大小

来自分类Dev

使用javascript调整图像大小

来自分类Dev

使用CSS调整图像大小

Related 相关文章

  1. 1

    使用QSizeGrip调整QLabel的大小

  2. 2

    使用EffectComposer时调整窗口大小

  3. 3

    同时调整 JPanel 大小时调整图像大小

  4. 4

    调整窗口高度时调整图像的大小

  5. 5

    调整窗口高度时调整图像的大小

  6. 6

    Python PyQt Qlabel调整大小

  7. 7

    调整窗口大小时使用jQuery更改正文

  8. 8

    调整窗口大小时使用jQuery更改正文

  9. 9

    使用Javascript调整窗口大小时如何更改菜单文本

  10. 10

    CSS在窗口调整大小时调整div和div内的图像

  11. 11

    使用GeometryReader调整窗口大小时,在SwiftUI中调整矩形网格的大小

  12. 12

    在调整窗口大小时,如何防止使用HTML-CSS移动图像?

  13. 13

    调整窗口大小时如何使用鼠标单击获取图像坐标?

  14. 14

    在调整窗口大小时调用多个函数

  15. 15

    在JavaFX中调整窗口大小时如何调整图像大小

  16. 16

    防止QLabel调整父窗口小部件的大小

  17. 17

    调整窗口大小时图像的位置改变

  18. 18

    调整窗口大小时如何使图像流畅?

  19. 19

    调整窗口大小时固定图像位置

  20. 20

    使用 Nvidia NPP 调整图像大小时未记录的调整大小错误

  21. 21

    在窗口调整大小时调整CALayer框架大小的方法?

  22. 22

    ScalaFX(JavaFX):舞台内容不会在窗口调整大小时调整大小

  23. 23

    在窗口调整大小时调整两个图片框的大小

  24. 24

    使用Canvas调整覆盖图像大小时出现问题

  25. 25

    使用最大设备宽度调整大小时如何隐藏图像?

  26. 26

    调整大小时,使用laravel中的asset功能加载图像

  27. 27

    使用CSS调整图像大小

  28. 28

    使用javascript调整图像大小

  29. 29

    使用CSS调整图像大小

热门标签

归档