0

From the ImageViewer example:

 ImageViewer::ImageViewer()
 {
     imageLabel = new QLabel;
     imageLabel->setBackgroundRole(QPalette::Base);
     imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
     imageLabel->setScaledContents(true);

     scrollArea = new QScrollArea;
     scrollArea->setBackgroundRole(QPalette::Dark);
     scrollArea->setWidget(imageLabel);
     setCentralWidget(scrollArea);

     resize(500, 400);
 }

I need the scroll area to appear not in the central widget, but in a dialog inside the central widget.

I tried with:

ImageViewer::ImageViewer()
{
    QImage image(fileName);

    plotImg = new QLabel;
    plotImg->setBackgroundRole(QPalette::Base);
    plotImg->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
    plotImg->setScaledContents(true);

    plotImg->setPixmap(QPixmap::fromImage(image));

    scrollArea = new QScrollArea(this);
    scrollArea->setWidget(plotImg);
    scrollArea->setBackgroundRole(QPalette::Dark);

    printAct->setEnabled(true);
    fitToWindowAct->setEnabled(true);

    if(!fitToWindowAct->isChecked())
        plotImg->adjustSize();

    return true;
}

From this code, I get the dialog inside the central widget. This dialog, however, does not contain the image itself, but the scroll area which contains the image.

I would like the dialog and the scroll area to be "the same thing"...

Pietro
  • 12,086
  • 26
  • 100
  • 193

1 Answers1

2

Easy. Don't use a dialog, simply have ImageViewer inherit directly from QScrollArea.

Kuba hasn't forgotten Monica
  • 95,931
  • 16
  • 151
  • 313