私はこの問題に行き詰まり、他のほとんどすべての同様の問題を試しましたが、どれも機能しません。
問題、カスタム ウィジェットがあります。カスタム ウィジェットには QScrollArea があり、QScrollArea 内には Qlable のサブクラスを継承する Qlabal があります。
画像を読み込むと、setscalecontent が true であるため、画像はラベルに合わせられますが、画像を通常のサイズまたは最初のサイズに変更するためのボタンがあり、それを調整サイズから使用すると、画像は最初のサイズに戻りますが、スクロールバーはロードされていない、widgetresizable が true である、
私のウィジェットの setupui:
void setupUi(QWidget *widget_img_2d)
{
if (widget_img_2d->objectName().isEmpty())
widget_img_2d->setObjectName(QString::fromUtf8("widget_img_2d"));
widget_img_2d->resize(569, 379);
gridLayout = new QGridLayout(widget_img_2d);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
scrollArea = new QScrollArea(widget_img_2d);
scrollArea->setObjectName(QString::fromUtf8("scrollArea"));
scrollArea->setWidgetResizable(true);
scrollArea->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter);
scrollAreaWidgetContents = new QWidget();
scrollAreaWidgetContents->setObjectName(QString::fromUtf8("scrollAreaWidgetContents"));
scrollAreaWidgetContents->setGeometry(QRect(0, 0, 549, 359));
QSizePolicy sizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(scrollAreaWidgetContents->sizePolicy().hasHeightForWidth());
scrollAreaWidgetContents->setSizePolicy(sizePolicy);
gridLayout_2 = new QGridLayout(scrollAreaWidgetContents);
gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
lbl_img = new my_qlable(scrollAreaWidgetContents);
lbl_img->setObjectName(QString::fromUtf8("lbl_img"));
sizePolicy.setHeightForWidth(lbl_img->sizePolicy().hasHeightForWidth());
lbl_img->setSizePolicy(sizePolicy);
lbl_img->setAutoFillBackground(false);
lbl_img->setScaledContents(true);
gridLayout_2->addWidget(lbl_img, 0, 0, 1, 1);
scrollArea->setWidget(scrollAreaWidgetContents);
gridLayout->addWidget(scrollArea, 0, 0, 1, 1);
retranslateUi(widget_img_2d);
QMetaObject::connectSlotsByName(widget_img_2d);
} // setupUi