Я использую рамки графического представления для добавления элементов во время выполнения в представление. предметы будут помещены один под другим, как в вертикальной компоновке.Позиция позиции позиции в QGraphicsView при изменении размера
Я всегда помещаю свой предмет в исходное положение сцены (10, 10). но при изменении размера представления маржа корректируется. как поддерживать одинаковый размер при каждом изменении размера окна просмотра?
я гугл и нашел
QTransform Matrix(1, 0, 0, 0, 1, 0, 0, 0, 1);
Matrix.scale(width()/sceneRect().width(), height()/sceneRect().height())
setTransform(Matrix);
помогает в восстановлении маржи, но она также сокращает элемент на основании высоты вида рациона.
Я всегда хотел поддерживать тот же размер элемента, даже виджет вида сжимается или расширяется. должна появиться полоса прокрутки.
благодарит за ясный ответ. Да, я добавляю элемент только на сцену. скажем, координата места (0,0,1000,1000), я разместил элемент в QPoint (18,12), чтобы сохранить разницу в марже. но при изменении размера окна просмотра эти поля возрастают. строки кода, которые я добавил, помогут сохранить маржу, но также масштабируют элемент, но я должен игнорировать сокращение объекта. – Wagmare
Мне нужно было бы написать код сам, чтобы быть абсолютно уверенным, но если вы изучите эти значения матрицы преобразования, я думаю, вы обнаружите, что хотите, чтобы масштабные коэффициенты (m11 и m22) оставались такими же, как вы изменяете размер представления. Я думаю, вам нужно подклассифицировать QGraphicsView и переопределить resizeEvent и там, сбросить масштабные коэффициенты QGraphicsView. – goug
уверен, что я сделаю это goug .. спасибо вам большое. я буду обновлять в соответствии с вашими рекомендациями и отвечать на ваши вопросы. – Wagmare