Лучший способ сделать это: для окна (или виджета) лучше переопределить функцию события рисования, таким образом вам не нужно будет изменять масштаб изображения.
void MainWindow::paintEvent(QPaintEvent *e)
{
QPainter painter(this);
painter.drawImage(this->rect(),QImage("windowImage.png"));
QMainWindow::paintEvent(e);
}
то же самое для Frame, создайте класс, который наследует от QFrame, и переопределите функцию события рисования
Заголовочный файл:
#pragma once
#include <QFrame>
#include <QPainter>
class CFrame : public QFrame
{
Q_OBJECT
public:
explicit CFrame(QWidget *parent = nullptr);
void paintEvent(QPaintEvent *) override;
};
cpp:
#include "cframe.h"
CFrame::CFrame(QWidget *parent) : QFrame(parent)
{
}
void CFrame::paintEvent(QPaintEvent *e)
{
QPainter painter(this);
painter.drawImage(this->rect(),QImage("frameImage.png"));
QFrame::paintEvent(e);
}
для продвижения QFrame, который вы используете для CFrame;)