Reputation: 13172
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"...
Upvotes: 0
Views: 151
Reputation: 98485
Easy. Don't use a dialog, simply have ImageViewer
inherit directly from QScrollArea
.
Upvotes: 2