Я хочу адаптировать свой QLabel
так, чтобы он точно соответствовал моему изображению (после того, как вы можете изменить размер width
, height
или прокрутить), но по умолчанию я хочу, чтобы окно адаптировалось к размеру изображения. Сейчас это выглядит так: Но я хочу, чтобы это выглядело так:
Мой текущий подход следующий https://doc.qt.io/qt-5/qtwidgets-widgets-imageviewer-example.html
ImageViewer::ImageViewer(QWidget *parent)
: QMainWindow(parent), imageLabel(new QLabel)
, scrollArea(new QScrollArea)
{
imageLabel->setBackgroundRole(QPalette::Base);
imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
imageLabel->setScaledContents(true);
scrollArea->setBackgroundRole(QPalette::Dark);
scrollArea->setWidget(imageLabel);
scrollArea->setVisible(false);
setCentralWidget(scrollArea);
createActions();
resize(QGuiApplication::primaryScreen()->availableSize() * 3 / 5);
}
void ImageViewer::setImage(const QImage &newImage)
{
image = newImage;
if (image.colorSpace().isValid())
image.convertToColorSpace(QColorSpace::SRgb);
imageLabel->setPixmap(QPixmap::fromImage(image));
scaleFactor = 1.0;
scrollArea->setVisible(true);
printAct->setEnabled(true);
fitToWindowAct->setEnabled(true);
updateActions();
if (!fitToWindowAct->isChecked())
imageLabel->adjustSize();
}