1
我試圖在位於QMainWindow
上的QScrollArea
內顯示圖像。Qt:在QScrollArea內顯示圖像(QLabel)
欲用於圖像顯示固定的大小,和滾動條顯示,如果加載的圖像是比QScrollArea
更大。我的問題是,當我加載大於QScrollArea
的圖像時,圖像顯示爲剪切(這沒問題),但UI上沒有出現滾動條。
考慮到其他計算器問題,考慮各種recommandations,這裏是從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?
也許你還需要調整'scrollAreaWidgetContents'呢?滾動條的外觀取決於包含小部件的大小。 – vahancho
是的,這工作! – Smash