206 字
1 分钟
Qt 显示图像
2022-02-24

前言#

在 Qt 中,目前常用的显示图像方式有 QLabel 和 QGraphicsView 两种。

QLabel#

创建一个 QLabel 控件和 QPushButton 按钮。

注意:QLabel 的尺寸就是最终能显示的图像范围

// TODO: 方法1 QImage -> QPixmap
QImage qimg;
qimg.load(":/images/Abigail_Portrait.png");
label->setPixmap(QPixmap::fromImage(qimg));
label->show();
// TODO: 方法2 QPixmap
label->setPixmap(QPixmap(":/images/Abigail_Portrait.png"));
label->show();

QGraphicsView#

创建一个 GraphicsView 控件和 QPushButton 按钮。

QGraphicsView 虽然也只能显示限制在控件大小的图像内容,但会自动生成 Scroll(滚动条) ,通过滚动条能看到整张图像的内容。

// QImage -> QPixmap -> QGraphicsScene
QGraphicsScene *scene = new QGraphicsScene; // 创建场景
graphicsView->setScene(scene);
scene->addPixmap(QPixmap(":/images/Abigail_Portrait.png"));
graphicsView->show();

QWidget#

该方法常用于设置主窗口的背景图片。

QPalette palette = this->palette();
QPixmap pixmap("Image Path");
palette.setBrush(QPalette::Window, QBrush(pixmap));
this->setPalette(palette);

QPixmap 缩放图片#

等比例缩放:

QPixmap img("Image Path");
QSize imgSize(400, 300);
QPixmap scaledPixmap = pixmap.scaled(imgSize, Qt::KeepAspectRatio);

强制缩放:

QPixmap img("Image Path");
QSize imgSize(400, 300);
QPixmap scaledPixmap = pixmap.scaled(imgSize);
Qt 显示图像
https://fuwari.vercel.app/posts/编程/qt/qt-显示图像/
作者
Asuwee
发布于
2022-02-24
许可协议
CC BY-NC-SA 4.0