QLabel :: setPixmap()和QScrollArea :: setWidget()

时间:2014-03-26 06:34:00

标签: c++ qt qlabel qscrollarea

我一直在追踪一个归结为此的错误 - 如果您在滚动区域内显示图片标签,那么如果QLabel::setPixmap()标签不会调整为图片的大小在 QScrollArea::setWidget()之后被称为

此示例说明了此问题,只需将/path/to/some/image.png替换为计算机上的某些真实图像:

QScrollArea *scrollArea = new QScrollArea;
QLabel *label = new QLabel(scrollArea);
scrollArea->setWidget(label);
label->setPixmap(QPixmap("/path/to/some/image.png"));
scrollArea->show();

如果您在 setPixmap()之前交换行以致电setWidget() ,则会正确调整标签大小。

为什么会发生这种情况,如何正确强制标签resize

1 个答案:

答案 0 :(得分:3)

将滚动区域的widgetResizable属性设置为true:

scrollArea->setWidgetResizable(true);