我在水平布局(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);
这是不受欢迎的输出:
我尝试将小部件的HorizontalPolicy
和VerticalPolicy
属性设置为Expanding
以及Minimum
,但它们都没有帮助。
答案 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()
中缩放像素图。