QLabel :: setPixmap () и QScrollArea :: setWidget ()

Я обнаружил ошибку, которая сводится к этому — если вы показываете метку изображения внутри области прокрутки, метка не будет изменена до размера изображения, если 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

Решение

Установите область прокрутки widgetResizable свойство к истине:

scrollArea->setWidgetResizable(true);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]