QScrollArea
にある内に画像を表示しようとしていQMainWindow
ます。
画像表示の固定サイズが必要で、読み込まれた画像がQScrollArea
. 私の問題は、 より大きい画像をロードするとQScrollArea
、画像が切り取られたように見えますが (これは問題ありません)、UI にスクロール バーが表示されないことです。
他のスタックオーバーフローの質問からのさまざまな推奨事項を考慮して、Qt デザイナーから生成されたコードを次に示します。
mImageScrollArea = new QScrollArea(centralWidget);
mImageScrollArea->setObjectName(QString::fromUtf8("mImageScrollArea"));
mImageScrollArea->setGeometry(QRect(440, 0, 400, 700));
mImageScrollArea->setWidgetResizable(false);
scrollAreaWidgetContents = new QWidget();
scrollAreaWidgetContents->setObjectName(QString::fromUtf8("scrollAreaWidgetContents"));
scrollAreaWidgetContents->setGeometry(QRect(0, 0, 398, 698));
mLabel = new QLabel(scrollAreaWidgetContents);
mLabel->setObjectName(QString::fromUtf8("mLabel"));
mLabel->setGeometry(QRect(0, 0, 400, 700));
QSizePolicy sizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(mLabel->sizePolicy().hasHeightForWidth());
mLabel->setSizePolicy(sizePolicy);
mLabel->setScaledContents(true);
mImageScrollArea->setWidget(scrollAreaWidgetContents);
画像が読み込まれると、次のようにラベルに表示します。
QPixmap wPixmap = QPixmap::fromImage(mImage);
ui.mLabel->resize(wPixmap.size());
ui.mLabel->setPixmap(wPixmap);
ui.mLabel->show();
ロードした画像が QScrollArea より大きい場合、スクロールバーが表示されないのはなぜですか?