Я обнаружил ошибку, которая сводится к этому — если вы показываете метку изображения внутри области прокрутки, метка не будет изменена до размера изображения, если 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
должным образом?
Установите область прокрутки widgetResizable
свойство к истине:
scrollArea->setWidgetResizable(true);
Других решений пока нет …