206 字
1 分钟
Qt 显示图像
前言
在 Qt 中,目前常用的显示图像方式有 QLabel 和 QGraphicsView 两种。
QLabel
创建一个 QLabel 控件和 QPushButton 按钮。
注意:QLabel 的尺寸就是最终能显示的图像范围
// TODO: 方法1 QImage -> QPixmapQImage qimg;qimg.load(":/images/Abigail_Portrait.png");label->setPixmap(QPixmap::fromImage(qimg));label->show();
// TODO: 方法2 QPixmaplabel->setPixmap(QPixmap(":/images/Abigail_Portrait.png"));label->show();
QGraphicsView
创建一个 GraphicsView 控件和 QPushButton 按钮。
QGraphicsView 虽然也只能显示限制在控件大小的图像内容,但会自动生成 Scroll(滚动条) ,通过滚动条能看到整张图像的内容。
// QImage -> QPixmap -> QGraphicsSceneQGraphicsScene *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);