Положил на главную форму QGridLayout (сделал CentralWidget-ом), внутрь - QLabel, пихаю в нее QPixel так:
ui->lbl_firstImage->setPixmap(this->firstImage);
Хочется, чтобы при растяжении (сужении) формы растягивалось (и сжималось) само изображение.
вот так не подходит:
ui->lbl_firstImage->setScaledContents(true);
ui->lbl_firstImage->setPixmap(this->firstImage);
т.к. при таком написании изображение с самого начала делается максимально большим (в полный размер) и форма более не сжимается.
Как сделать адекватный autoscalling?
UPD: нашел, как выставить scalled содержимое - помог пример. Теперь задача усложнилась. У меня на самом деле не одна QLabel, а три. И вот такой код:
void MainWindow::resizeEvent(QResizeEvent *ev)
{
if (!this->firstImage.isNull())
ui->lbl_firstImage->setPixmap(this->firstImage.scaled(ui->lbl_firstImage->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
if (!this->secondImage.isNull())
ui->lbl_secondImage->setPixmap(this->secondImage.scaled(ui->lbl_secondImage->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
if (!this->splittedImage.isNull())
ui->lbl_splittedImage->setPixmap(this->splittedImage.scaled(ui->lbl_splittedImage->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation));
}
Т.е. все повешено на событие ресайза главного окна. Но вот незадача: когда я выбираю первое изображение - все норм. А вот при выборе второго изображения форма сама увеличивает себя в размерах, и.... за счет самопроизвольного вызова события ресайза происходит лавинообразный бесконтрольный рост формы и ее scalled-содержимого :).. Как победить?