Попробовал эксперимент. Загрузил QML через QQuickView который имеет методы для задания ширины и длинны. Через void resizeEvent(QResizeEvent *ev) загоняю в QML root объект размеры окна QQuickView, потом модифицирую размер окна QQuickView, к примеру: если увеличиваем ширину то высота = ширине. И опять та же ситуация, окно вроде увеличивается, отпускаешь увеличение и идёт возврат на начальный размер. Больше нет вариантов, тему можно закрывать. Делаю графику фиксированных размеров. Код с примером ниже, может кто то когда то доведёт дело до конца.
header
#include <QQuickView>
#include <QQuickItem>
class windowResize : public QQuickView
{
Q_OBJECT
protected:
void resizeEvent(QResizeEvent *ev)
{
QQuickItem* rootQml = rootObject();
rootQml->setProperty("width", ev->size().width());
rootQml->setProperty("height", ev->size().height());
if(ev->oldSize().width() != ev->size().width())
this->setHeight(this->width());
}
};
source
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
windowResize view;
view.setSource(QUrl(QStringLiteral("qrc:/main.qml")));
view.show();
return app.exec();
}
QML
Item
{
id: root
width: 400
height: 400
Rectangle
{
width: root.width
height: root.height
color: "red"
}
}