Адаптируйте QLabel к размеру изображения - PullRequest
0 голосов
/ 16 июня 2020

Я хочу адаптировать свой QLabel так, чтобы он точно соответствовал моему изображению (после того, как вы можете изменить размер width, height или прокрутить), но по умолчанию я хочу, чтобы окно адаптировалось к размеру изображения. Сейчас это выглядит так: enter image description here Но я хочу, чтобы это выглядело так: enter image description here

Мой текущий подход следующий 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();

}
...