使用图像填充网格中放置的QLabel / QGraphics小部件

时间:2015-04-14 18:35:46

标签: qt layout

我在水平布局(QHBoxLayout)中放置了两个QGraphicsView和一个QLabel,其layoutStretch设置为1, 1, 1。问题是当我尝试在其中加载图像时,图像不会填充小部件区域。这是代码:

QPixmap pix1("image1.jpg");
pix1 = pix1.scaled(ui->label1->size());
ui->label1->setPixmap(pix);

QPixmap pix2("image2.jpg");
pix2 = pix2.scaled(ui->graphicsView1->size());
ui->graphicsView1->scene()->addPixmap(pix2);

QPixmap pix3("image3.jpg");
pix3 = pix3.scaled(ui->graphicsView2->size());
ui->graphicsView2->scene()->addPixmap(pix3);

这是不受欢迎的输出:

enter image description here

我尝试将小部件的HorizontalPolicyVerticalPolicy属性设置为Expanding以及Minimum,但它们都没有帮助。

1 个答案:

答案 0 :(得分:0)

将尺寸政策设定为QSizePolicy::Ignored,并使用Qt::KeepAspectRatioByExpanding进行缩放:

ui->label1->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
pix1 = pix1.scaled(ui->label1->size(), Qt::KeepAspectRatioByExpanding);
ui->label1->setPixmap(pix);

您可能希望在resizeEvent()中缩放像素图。

相关问题